2017-08-17 9 views
0

我有一个这样的切换按钮,这里的按钮将根据从数据库中获取的行数动态创建将切换按钮的值存储为1时,它在其他0关闭在相同的数组变量使用php

<td colspan="3"><input type="checkbox" class="toggleone" name="attendance[]" id="attendance[]" data-toggle="toggle" data-on="Yes" data-off="No"></td> 

我的问题是价值观上后按钮 点击时无法正常发送,但对按钮的数量是正确的,但不能正确地存储在自己的位置

button    obtained output    desired output 
on     1        1 
off     1        0 
off     0        0 
off     0        0 
on     0        1 

有人帮我在那里出错了。 这里是我的循环

for($i=0;$i<($_SESSION['num1']);$i++) 
{ 

     $subcheck = (isset($_POST['attendance'][$i]))? 1 : 0; 
     echo $subcheck; 
} 

回答

0

你的逻辑是错误的,$_POST['attendance'][$i]是不是你认为它是。如果2个输入进行检查,的$_POST['attendance']第一2个值将被设置(索引0和1),而不管它们是否是第2个复选框或例如最后2.

正如你没有设置键也不是您复选框的值,您将无法在服务器上识别它们。

为了避免这种情况,您应该在生成表单或为其赋值时手动设置键。

要设置键在一个循环中,你可以使用类似:

<input type="checkbox" class="toggleone" name="attendance[<?php echo $i; ?>]" id="attendance_<?php echo $i; ?>" data-toggle="toggle" data-on="Yes" data-off="No"> 

注意,我不知道你是否可以使用数组符号的ID(我不这么认为.. 。)所以我已经使用字符串设置了ID。

+0

我发现我自己的解决方案,我iset默认值为0,并更新它,如果它检查为1,为我工作了很多,非常感谢 – HariPriya

相关问题