-1

我有这个表格:

 <tbody>
    <tr>
     <th>ID</th>
     <th>Name</th>
     <th>Birthdate</th>
     <th><input type="text" autofocus="autofocus" name="textinput1"/></th>
     <th><input type="checkbox" name="checkinput[]" value="1"/></th>
    </tr>
    <tr>
     <th>ID</th>
     <th>Name</th>
     <th>Birthdate</th>
     <th><input type="text" autofocus="autofocus" name="textinput2"/></th>
     <th><input type="checkbox" name="checkinput[]" value="1"/></th>
    </tr>
    (...and so on...)
  </tbody>

当我点击提交按钮时,有没有办法发布数据是数组类型,每个索引都有复选框值和文本输入?这样我只需要迭代数组并为表单中的每一行检查数据库中的相应行并更新它。

4

1 回答 1

2

将文本输入框制作成数组,并将数组键的值放入 HTML:

<th><input type="text" autofocus="autofocus" name="textinput[1]"/></th>
<th><input type="checkbox" name="checkinput[]" value="1"/></th>

然后当你迭代时,你会做这样的事情:

$input = is_array( $_POST['textinput']) ? $_POST['textinput'] : array();
foreach( $input as $checkbox_value => $text_input_value)
     echo $checkbox_value . ' ' . $text_input_value;

请注意,这不会告诉您复选框是否被选中,因为只有选中的复选框会从浏览器发送到服务器。为此,请修改复选框以包含数组键:

<th><input type="checkbox" name="checkinput[1]" value="1"/></th>

然后,将foreach循环更改为:

foreach( $input as $checkbox_value => $text_input_value) {
     echo $checkbox_value . ' ' . $text_input_value;
     $checked = (isset( $_POST['checkinput'][$checkbox_value])) ? 'checked' : 'not checked';
     echo "\nThe checkbox was $checked\n";
}
于 2012-06-20T16:56:50.697 回答