使用复选框和提交按钮为每个回显一个 SQL 行

问题描述 投票:0回答:1

我将简化代码以突出显示我需要的内容:

<form id="highlighttable" name=form1 method="POST">
    
    <div class="form-group">
        <button name="save_multicheckbox" class="btn-primary">Save Checkbox</button>
    </div>
    <?php
      if(isset($_POST['save_multicheckbox'])){
        echo "<p>yes</p>";
        $checklist = $_POST['ckb'];
        foreach($checklist as $list) {
            echo "<p>as</p>";
        }
      }
    ?>
        <table>
        <tr id="col-title">
                    <th>Title</th>
                    <th>Type</th>
                    <th>Post Date</th>
                    <th>Url</th>
                    <th>Feature</th>
                </tr>

                <?php foreach($result as $res){
                        ?><tr>
                            <td><h6>Lorem</h6></td>
                            <td><h6>Lorem</h6></td>
                            <td><h6>Lorem</h6></td>
                            <td><h6>Lorem</h6></td>
                            <td id="h-center"><input type="checkbox" name="ckb[]" onclick="chkcontrol(<?php echo $res->chkbox_num; ?>)">
                                </td>
                            </tr>
                        <?php
                    } ?>
        </table>
 </form>

我的选择查询中有 foreach,它输出下面的表行:

<?php foreach($result as $res){} ?>

输出:

我想做的是通过用复选框(最后一列)标记我想要得到的内容来回显或检索每个选定行的其余行

<td id="h-center"><input type="checkbox" name="ckb" onclick="chkcontrol(<?php echo $res->chkbox_num; ?>)"></td>

我的问题是我的 foreach 没有输出我在下面尝试过的选定行:

      if(isset($_POST['save_multicheckbox'])){
        echo "<p>yes</p>";
        $checklist = $_POST['ckb'];
        foreach($checklist as $list) {
            echo "<p>as</p>";
        }
      }

首先我尝试在按钮内添加一个回声来检查它是否有效,我只是想知道如何显示选定的行。我用来获取它的变量可能有问题吗?我的尝试是

$checklist = $_POST['ckb'];
,其中
ckb
是复选框的名称。

澄清:下面的屏幕截图显示了我的 foreach

onclick
它们的值从 0

开始

php sql for-loop checkbox row
1个回答
0
投票

你应该让你的 foreach 循环只显示通过检查相应的复选框是否被选中来选择的行。 您可以通过在循环中添加一个 if 语句来做到这一点,如下所示:

foreach($result as $res) {
  if(isset($_POST['ckb'][$res->id])) {
    // display the row here
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.