点击按钮获取所有选中的行

时间:2017-10-04 18:40:24

标签: php jquery

我有一个表格,其中数据从db动态填充,现在每行的开头都有一个复选框,我想要做的是当用户点击导出按钮时我想获取所有那些被检查的行,这是我的代码!

Dyanamic表

<table id="example" class="export_table">
                        <thead>
                        <tr>
                            <th id="not1">Check Box</th>
                            <th>Brand</th>
                            <th>Production Date</th>
                            <th>Expiry Date</th>
                            <th>Made In</th>
                            <th>Status</th>
                            <th>Batch Code</th>
                            <th>Created On</th>
                        </tr>
                        </thead>
                        <tbody>

                        $i=0;
                        foreach($results as $r){
                            echo "<tr>";
                            echo "<th id='not2'><input type='checkbox' name='checkedvalues' value='val_".$i."'/> </th>";
                            echo "<td>".$r['brand']."</td>";
                            echo "<td>".$r['production_date']."</td>";
                            echo "<td>".$r['expiry_date']."</td>";
                            echo "<td>".$r['madein']."</td>";
                            echo "<td>".$r['status']."</td>";
                            echo "<td id='main-print'>".$r['batch_code']."</td>";
                            echo "<td>".$r['created_on']."</td>";
                            echo "</tr>";
                            $i++;

                        }

                        ?>

                        </tbody>
                    </table>

JQuery的

$(document).ready(function() {

        $("#export").click(function(){

            var selectedvalues = [];

            $.each($("input[name='checkedvalues']:checked"), function(){

                selectedvalues.push($(this).val());

            });

            alert("Checked values are: " + selectedvalues.join(", "));

        });

    });

现在我只得到所选复选框的值,这实际上我不想要我想要的是生成一个应该根据检查属性填充的数组!它应该在检查复选框的基础上取整行,然后返回一个包含所有行检查的数组,有任何帮助吗?

1 个答案:

答案 0 :(得分:1)

您可以将行数据存储为&#34; value&#34;中的对象。在每个复选框中。 像下面的东西(在你的foreach循环内)

foreach($results as $r){
        $obj = "{".$r['brand'].",".$r['production_date'].",".$r['expiry_date'].",".$r['madein'].",".$r['status'].",".$r['batch_code'].",".$r['created_on']."}";
        echo "<tr>";
        echo "<th id='not2'><input type='checkbox' name='checkedvalues' value='".$obj."'/> </th>";
        ...
        ...
}

现在,您的 selectedvalues 数组将包含每个选中行的javascript对象。

抱歉任何php语法错误