8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

从多个复选框获取 $_POST

Craftbeergal 2月前

120 0

我有 1 个表格,其中有多个复选框(每个复选框都有代码): \'> 其中 $row['报告 ID'] 是主要...

我有 1 个表格,其中有多个复选框(每个复选框都有代码):

<input type="checkbox" name="check_list" value="<? echo $row['Report ID'] ?>">

数据库中的主键在 $row['Report ID'] 哪里

我如何知道哪些复选框已被选中?(可能是多个)

这是一个收件箱系统,下面有一个按钮,我想(单击时)删除所有 $row['Report ID'] 选中复选框的消息(id 为:)。

帖子版权声明 1、本帖标题:从多个复选框获取 $_POST
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Craftbeergal在本站《html》版块原创发布, 转载请注明出处!
最新回复 (0)
  • value=\'checked\' 是适得其反的。如果未指定任何值,则将获得“on”。在 value 属性中指定要提交的值的优点是,您可以发送几乎任意的数据,而不必成为 PHP 数组索引。使用 foreach 迭代数组值也比迭代键更容易。

  • 请记住,check_list[] 将以 check_list[0] 开头,而不是 check_list[1]。

  • 很简单。注意看,你马上就会明白!:)

    您将创建一个 html 数组,然后将其发送到 php 数组。您的 html 代码将如下所示:

    <input type="checkbox" name="check_list[1]" alt="Checkbox" value="checked">
    <input type="checkbox" name="check_list[2]" alt="Checkbox" value="checked">
    <input type="checkbox" name="check_list[3]" alt="Checkbox" value="checked">
    

    位置 [1] [2] [3] 在哪里 ID ,这意味着您将 echo 代替 $row['Report ID'] 它们。

    然后,当您提交表单时,您的 PHP 数组将如下所示:

    print_r($check_list)

    [1] => checked [3] => checked

    取决于哪些已检查,哪些未检查。

    我确信您可以从现在开始继续下去。

  • <input type="checkbox" name="check_list[<? echo $row['Report ID'] ?>]" value="<? echo $row['Report ID'] ?>">
    

    发布后,您可以循环浏览它们:

       if(!empty($_POST['check_list'])){
         foreach($_POST['check_list'] as $report_id){
            echo "$report_id was checked! ";
         }
       }
    

    或者获取上一页发布的某个值:

    if(isset($_POST['check_list'][$report_id])){
      echo $report_id . " was checked!<br/>";
    }
    
  • 您必须相应地命名您的复选框:

    <input type="checkbox" name="check_list[]" value="…" />
    

    然后你可以使用以下方式访问所有选中的复选框

    // loop over checked checkboxes
    foreach($_POST['check_list'] as $checkbox) {
       // do something
    }
    

    ps. 确保正确转义你的输出( htmlspecialchars() )

  • 只有在字段定义中使用 [] 语法时,该操作才会起作用,这会使 PHP 将 $_POST 值创建为数组。否则它将是一个非数组值,从而导致 foreach() 循环崩溃。

  • 奇怪的错误:警告:/home1/mountgam/public_html/zombiewrath/reports.php 第 30 行中 foreach() 提供的参数无效 =/

  • 编辑 以反映@Marc 在下面的评论中所说的内容。

    您可以循环遍历所有已发布的值。

    HTML:

    <input type="checkbox" name="check_list[]" value="<?=$rowid?>" />
    <input type="checkbox" name="check_list[]" value="<?=$rowid?>" />
    <input type="checkbox" name="check_list[]" value="<?=$rowid?>" />
    

    PHP的:

    foreach($_POST['check_list'] as $item){
      // query to delete where item = $item
    }
    
  • @Tyzoid empty() 不会导致此错误。根据手册:如果变量不存在,empty() 不会生成警告。

  • @MārtiņšBriedis 如果数组索引不存在,则会导致数组索引超出范围。更好的检查方法是 array_key_exists('check_list', $_POST) && !empty($_POST['check_list'])

  • if($_POST) - 无用,$_POST 始终为真。您应该检查 if !empty($_POST['check_list'])。

  • 您能给我一个 echo(ing) 一个 check_list[] 复选框的例子吗?(对于两个选中的复选框是否类似?)谢谢。

  • 将表单中的名称设置为 check_list[] ,您将能够以数组的形式访问所有复选框( $_POST['check_list'][] )。

    以下是所要求的一个小样本:

    <form action="test.php" method="post">
        <input type="checkbox" name="check_list[]" value="value 1">
        <input type="checkbox" name="check_list[]" value="value 2">
        <input type="checkbox" name="check_list[]" value="value 3">
        <input type="checkbox" name="check_list[]" value="value 4">
        <input type="checkbox" name="check_list[]" value="value 5">
        <input type="submit" />
    </form>
    <?php
    if(!empty($_POST['check_list'])) {
        foreach($_POST['check_list'] as $check) {
                echo $check; //echoes the value set in the HTML form for each checked checkbox.
                             //so, if I were to check 1, 3, and 5 it would echo value 1, value 3, value 5.
                             //in your case, it would echo whatever $row['Report ID'] is equivalent to.
        }
    }
    ?>
    
返回
作者最近主题: