【问题标题】:Checkbox with Array inside looping False Result?带有数组内部循环错误结果的复选框?
【发布时间】:2015-06-19 13:01:46
【问题描述】:

我有这样的循环里面的复选框。

<?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
}

它会生成这样的表

简而言之,

在我提交到mysql之后是成功的但是还是错了。如果我检查该图像,则数据库有这样的错误结果

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

On database : 

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

谁能帮助解决我的问题?

提前致谢

【问题讨论】:

  • 最好显示插入/保存到数据库的代码。
  • 提交复选框时,仅提交选中的复选框。您需要为他们提供值来告诉您复选框在哪一行

标签: php html mysql


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    相关资源
    最近更新 更多