php, 如何将包含数组的变量作为其值传递到复选框的值字段中


php, How to pass a variable containing array as its value into a checkbox's value field

这是我的观点(代码点火器):

<?php 
echo form_open('main/req_submit');
foreach($start as $mediator){
    echo form_checkbox('requests[]' , '$mediator' , TRUE);
    foreach($mediator as $key => $val){
        echo $key . " : " . $val;
        echo "</br>";
    }
}
echo form_submit('mysubmit', 'Approve Requests');
echo form_close();
?>

我希望将存储在$mediator中的数组传递到相应复选框的值中。在上面提到的代码中,它将文字"$mediator"存储在复选框的值中

如果你想发送一个数组,那么你需要使用JSON把它变成一个字符串:

echo form_checkbox('requests[]' , json_encode($mediator) , TRUE);

你应该这样做:

// sample $start data
$start = array(
    array(
        'id' => 20,
        'student_name' => 'Sam'
    ),
    array(
        'id' => 18,
        'student_name' => 'John'
    ),
    array(
        'id' => 3,
        'student_name' => 'Bob'
    )
);
echo form_open('main/req_submit');
foreach ($start as $mediator) {
    echo form_checkbox('mediator_ids[]', $mediator['id'], TRUE);
    echo $mediator['student_name'] . "<br>";
}
echo form_submit('mysubmit', 'Approve Requests');
echo form_close();

这将发送如下所示的 POST 请求:

array (size=2)
  'mediator_ids' => 
    array (size=3)
      0 => string '20' (length=1)
      1 => string '18' (length=1)
      2 => string '3' (length=1)
  'mysubmit' => string 'Approve Requests' (length=16)

因此,您的 PHP 可以捕获 ID。您无需发送姓名。