Morning All,请帮我调试这个php代码
我有一个表格,我正在使用一次向数据库添加多行。这一切似乎工作正常,除了复选框。每个表格行都有一个复选框。无论勾选哪个复选框,结果总是在提交后以相同的顺序返回。
这里是形式的主要部分的事项:
<tr>
<td class='border'>
<input type='text' name='rowid[]' value='".$row."' style='display:none;' />
<input type='text' name='ref[]' style='width:100%;' />
</td>
<td class='border'>
<input type='text' name='obs[]' style='width:100%;' />
</td>
<td class='border'>
<input type='text' name='act[]' style='width:100%;' />
</td>
<td class='border' align='center'>
<input type='checkbox' name='comp[]' value='Yes' />
</td>
<td class='border'>
<input type='text' name='compby[]' style='width:100%;' />
</td>
<td class='border'>
<input type='text' name='compdate[]' id='completeddate".$row."' class='completeddate' style='width:100%;' />
</td>
</tr>
这种形式被提交,并用它在我的PHP代码交易。您可以看到第一个输入是表单行的ID。这是一个隐藏字段,对于窗体中显示的每一行,值都会递增1。
一旦提交表单,我用下面的PHP,每行,一个让交易在时间
foreach($_POST['rowid'] as $key=>$rowid) {
这应该基本上说,对于一个rowid,输入端的其余相关,直到它到达下一个rowid。
如果我再印说
echo $_POST['ref'][$key];
我会得到第一行的引用,然后一旦循环完成,再打印出来,我会得到第二行的引用,等等。
但是,如果我把
echo $_POST['comp'][$key];
那么这就是它打破。
比方说,例如,对于每一行我选中的复选框顺序如下:
row 1, tick, row 2, untick, row 3, tick
如果我然后让循环打印出所有的复选框的值,它会显示
'Yes', 'Yes', ''
但它应该在这个顺序
'Yes', '', 'Yes'
这是因为复选框是正常的一个无论如何,我会把它放到另一个数组中,通过给它一个comp []的名字?
反正有没有这个问题,或者我会更好有单选按钮,一个是的,一个是不是?
非常感谢
编
ühhhh...''rowid []'!='rowid'' – 2012-09-19 10:22:10
使用'print_r($ _ POST)'当您点击提交并显示结果... – Night2
当您提交表单时,只发送检查值...所以如果你计算$ _POST ['comp']的数量,你会看到这个数字等于你的表格中检查的数字,然后你不提交复选框的数量....你可以有不同的名称对于每个复选框行comp_1或类似的东西 – Surace