带有数组内部的复选框循环错误结果?

时间:2015-04-14 03:12:53

标签: php html mysql

我有像这样循环的复选框。

<?php

for($i=0;$i<$jumlah;$i++)  {

     echo "<tr>
          <td align='center'><input type='text' name='PROSES[]' placeholder='Input Proses $i'/></td>
          <td align='center'><input type='checkbox' name='NOTIF[]'  value='Yes'/></td>
          <td align='center'> <input type='checkbox' name='REMINDER[]'  value='Yes'/></td>
          <td align='center'> <input type='checkbox' name='DECISION[]'  value='Yes'/></td>
          <td align='center'> <input type='checkbox' name='AUTHOR[]'  value='Yes'/></td>
          <td align='center'><input type='text' name='SIAPA[]' size='40' placeholder='dari siap ke siapa' /></td>
      </tr>";


}//end for

echo "</table>"; 

?>

和要输入的查询

if(isset($_POST['SUBMIT'])) {
  $proses = $_POST[PROSES];//value from selectbox
  $jumlah = count($proses);

$max_id = $data_max_id[ID];

        for($i=0;$i<$jumlah;$i++) {

            $query_input = "INSERT INTO data_proses SET ID_input       = '$max_id',
                                                        proses         = '$proses[$i]',
                                                        notifikasi     = '$notif[$i]',
                                                        reminder       = '$reminder[$i]',
                                                        decision       = '$decision[$i]',
                                                        authorization  = '$author[$i]',
                                                        dari_siapa     = '$siapa[$i]'";

            $hasil_input = mysqli_query($mysqli, $query_input);                                                     
        }//end for
}

它将生成这样的表

enter image description here

简而言之,

我提交到mysql后成功但是stil错了。如果我像那个图像一样检查数据库有错误的结果

enter image description here

input :
        [x][x][ ][ ]
        [ ][x][x][ ]
        [ ][ ][x][x]

On database : 

        [x][x][x][x]
        [ ][x][x][ ]
        [ ][ ][ ][ ]

任何人都可以帮忙解决我的问题吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

在所有复选框的名称中包含行号。只有选中的复选框才会被提交,如果没有显式索引,PHP会将它们全部从0索引 - 您将看不到跳过的复选框的空值。

for($i=0;$i<$jumlah;$i++)  {

     echo "<tr>
          <td align='center'><input type='text' name='PROSES[]' placeholder='Input Proses $i'/></td>
          <td align='center'><input type='checkbox' name='NOTIF[$i]'  value='Yes'/></td>
          <td align='center'> <input type='checkbox' name='REMINDER[$i]'  value='Yes'/></td>
          <td align='center'> <input type='checkbox' name='DECISION[$i]'  value='Yes'/></td>
          <td align='center'> <input type='checkbox' name='AUTHOR[$i]'  value='Yes'/></td>
          <td align='center'><input type='text' name='SIAPA[]' size='40' placeholder='dari siap ke siapa' /></td>
      </tr>";


}//end for