在PHP中,数据表从行选择中获取所选单元格的值

tkqqtvp1  于 2023-03-16  发布在  PHP
关注(0)|答案(1)|浏览(133)

你如何通过复选框获得一个或多个选中行中某个单元格的值,并将该行的值传递给其他php表单进行查询?基本上我有一个带有select扩展和searchbuilder的datatable。我可以选择多个项目,但似乎不能使获得选中行工作。

表格

<table id="example" class="display" style="width:100%">
    <thead>
        <tr>
            <th>
             <form method="post" action="query.php">
               <button type="submit" name="send"></button>
             </form>                                                 
            </th>
            <th>ID</th>
            <th>Name</th>
    </thead>
    <tbody>
        <?php 
        $sql = mysqli_query($db,"query inside here");
        while ($row=mysqli_fetch_array($sql)){ ?>
        <tr>
            <td></td>
            <td><?php echo $row['app_id'] ?></td>
            <td><?php echo $row['app_nname']</td>
        <?php }?>
    </tbody>
    <tfooter>
        <tr>
            <th></th>
            <th>ID</th>
            <th>Name</th>
        </tr>
    </tfooter>
</table>

Javascript语言

<script>
    $(document).ready(function() {
        var table = $('#example').DataTable( {
            dom: 'QBfrtip',
            select: true,
            buttons: [
                {
                    text: 'Select all',
                    action: function () {
                        table.rows({
                            page:'current',search: 'applied'} ).select();
                    }
                },
                {
                    text: 'Select none',
                    action: function () {
                        table.rows().deselect();
                    }
                }
            ],
            columnDefs: [{
                    searchBuilder: {
                        defaultCondition: "=",
                    },
                    targets: [1]
                }],
        } );
    } );
</script>

我尝试过使用table.rows({selected:true}),但不知道如何获取查询(app_id)所需的特定值或一组值。
另外,我如何使app_id值通过header标记中的button click传递到下一个php页面?

iqxoj9l9

iqxoj9l91#

“* 如何获取选定的单行或多行中某个单元格的值 *”
一个建议:既然您已经在使用DataTable按钮,为什么不创建一个DataTable按钮来处理所需的选定ID的捕获。
为此,我忽略了问题表中的第一列(复选框列),因为我的演示不需要它。
您可以将其添加回演示中-如果您愿意,它不会改变整个方法。
我再加一个按钮:

{
  text: 'Get selected data',
  action: function () {
    var rows = table.rows( { selected: true } ).data().toArray();
    console.log( rows ); // array of selected rows (each row is an array of data)
    var ids = rows.map(function(x) {
      return x[0];
    });
    console.log( ids ); // array of selected IDs
  }
}

这个逻辑被分解成几个小步骤,只是为了演示的目的--但是您可以简化它。最后的console.log( ids )将记录列0(ID列)中的值的数组。
关键的一步是使用这个:

rows( { selected: true } )

以访问选定的行。
一旦您有了需要POST到服务器的值数组,那么这就是一个单独的步骤了。这个答案只涉及从DataTable获取选定的数据。
如果你仍然喜欢使用复选框(一个完全合理的方法),那么你也可以保留你的标准HTML按钮。
完整演示:
一个二个一个一个

相关问题