我有这样的代码:
$values = array('1A', '2B', '3C', '4D', '5E');
$checked = array('1A_check', '2B_check', '3C_check', '4D_check', '5E_check');
$description = array('Description1', 'Description2', 'Description3', 'Description4', 'Description5');
for ($i=0; $i<count($values); $i++) {
$$checked[$i] = ""; //Setting this to null since this variable will be set to checked or not in the later step
$checkbox_form[] = '<input type="checkbox" name="checkbox[]" value="'. $values[$i] .'"'. $$checked[$i] .'>
'. $description[$i] .' <br />';
}
foreach ($checkbox_form as $value) { //Rending the Form
echo $value;
}
此代码呈现如下形式:
<input type="checkbox" name="checkbox[]" value="1A">
Description1 <br />
<input type="checkbox" name="checkbox[]" value="2B">
Description2 <br />
<input type="checkbox" name="checkbox[]" value="3C">
Description3 <br />
<input type="checkbox" name="checkbox[]" value="4D">
Description4 <br />
<input type="checkbox" name="checkbox[]" value="5E">
Description5 <br />
到目前为止,一切都很好。我接下来要做的是,当用户从框中选择一些复选框并单击“预览”时,我希望他们转到一个页面,该页面预览带有“选中”复选框的表单。所以我有一个这样的代码来做到这一点:
//After checking what values were posted in the previous screen
$checkbox_posted = array('1A_check', '2B_check'); //Storing the posted checkboxes to this array
if (count($checkbox_posted) != 0) {
foreach ($checkbox_posted as $item) {
$$item = ' checked';
}
}
我认为上面的variable variable
代码会将“已检查”值添加到表单的第 1 行$1A_check
和$2B_check
第 2 行中的变量,但它并没有选中复选框。我认为表单应该像这样输出:
<input type="checkbox" name="checkbox[]" value="1A" checked>
Description1 <br />
<input type="checkbox" name="checkbox[]" value="2B" checked>
Description2 <br />
<input type="checkbox" name="checkbox[]" value="3C">
Description3 <br />
<input type="checkbox" name="checkbox[]" value="4D">
Description4 <br />
<input type="checkbox" name="checkbox[]" value="5E">
Description5 <br />
但相反,它在不通过检查值的情况下输出。所以它不起作用。我做错了什么?