获取n行的复选框值

时间:2016-11-17 14:21:12

标签: php mysql

我正在尝试为网页上的sql数据库显示的数据实现批量操作功能。我已经将数据回显成html格式,我正在尝试添加一个复选框功能,用户可以在其中选择任意数量的行,然后通过从下拉列表中选择一个值来执行批量操作,例如delete-和所有选定的值将从数据库中删除。虽然在提交执行操作按钮后获得所选复选框值,但我有点磕磕绊绊。我把我的尝试放在下面的代码中 - 我得到了无效的foreach参数提供了错误消息。我很确定它与我的输入循环有关。

非常感谢任何帮助!

//establish connection to database:
        require 'DB.php';

        $query = mysql_query("SELECT * FROM names", $conn);
        echo "<tr>";

        //echo results while rows of data remain... 
        while ($row = mysql_fetch_array($query)) {
            echo '<tr><td>' . $row['NAME'] . '</td>';
            echo '<td><input type="checkbox" name="checked[' . $row['NAME'] . ']" value="' . $row['NAME'] .'"></td>';
        }

        ?>
        </tr>
    </table>
</div>
</body>
</html>
<?

if (isset($_POST['perform_action'])) {

    //check checkbox values
    foreach ($_POST['checked'] as $check) {
        echo $check;
    }

    //do something with the values
    if ($_POST['bulk_action'] == 'delete') {
        echo "you chose to delete";
    }

2 个答案:

答案 0 :(得分:0)

if (isset($_POST['perform_action'])) {
 $query = mysql_query("SELECT * FROM names", $conn);
   while ($row = mysql_fetch_array($query)) {
       if (isset($_POST["checked".$row['NAME']])){
           //hear you can do anything to your checked checkbox

          }

    }
  }

答案 1 :(得分:0)

在处理发布的数据之前,您需要确保它存在。

在您的代码中,如果您在未选中任何复选框的情况下提交表单,则会面临无效的foreach参数提供消息,因此您需要检查字段$_POST['checked']是否为然后运行循环。

所以改变

foreach ($_POST['checked'] as $check) {
    echo $check;
}

    //check checkbox values
  if(isset($_POST['checked'])){
    foreach ($_POST['checked'] as $check) {
        echo $check;
    }
  }