-3

嗨,我有一个从 MYSQL 填充的表,我想做的是在每一行上都有一个复选框,我可以在其中选择然后按一个按钮并一键更新所有选定的行。

这是我的复选框的代码。

 <input type='checkbox' name='checked[]' value='<?php echo $row['id']; ?>'>

这是我的 PHP 代码

 if ($_POST['submit']){ //check if they submitted

  //see which check boxes were selected
  foreach ($_POST['checked'] as $key => $val){

  //update records
  $result = mysql_query("UPDATE masterip_details SET type='3' WHERE id='$key'") 
             or die(mysql_error()); 
    }
  }

目前没有任何反应,如果我尝试回显键,那么我就没有 id

4

2 回答 2

1

您需要使用$val而不是 $key。$key将只包含顺序的索引checked[]

我还删除了if($_POST['submit'])代码并将其替换为if(count($_POST['checked']>0))

if (count($_POST['checked']>0)){
    foreach ($_POST['checked'] as $key => $val){

        $val = mysql_real_escape_string($val);

        $result = mysql_query("UPDATE masterip_details SET type='3' WHERE id='{$val}'");
    }
}
于 2013-05-23T07:52:31.130 回答
0

未选中的复选框不会发送到服务器,我记得如果选中它只会发送 1。

因此,您可以将脚本更改为:

<input type='checkbox' name='checked[<?php echo $row['id']; ?>]' />

并用 $key 检查它

于 2013-05-23T07:53:27.573 回答