【问题标题】:Get which checkboxes have been checked in PHP获取在 PHP 中选中了哪些复选框
【发布时间】:2016-07-28 00:44:41
【问题描述】:

我想在一个表单中获取所有选中的复选框,所以如果有一个复选框列表,其值为“a”、“b”、“c”和“d”,并且只有复选框“a”和“c” ' 被选中,我的查询只会从所需的表中选择 'a' 和 'c'。

最好在 PHP 中完成此任务的最简单方法是什么?

编辑:检索检查了哪些复选框后,我想在我的 MySQLI 查询中使用这些复选框。

因此,例如,如果结果是 'c','d','e',则查询应如下所示:

$query = "SELECT 'c', 'd', 'e' FROM table";

我如何将结果翻译成这个?

我尝试使用来自类似问题的示例:https://stackoverflow.com/a/4997271/5453484

编辑 2:更多代码:

<form name="filter"  style="float:left;" method="post">
            <table>
                <tr>
                    <td>
                        <label>Voornaam:</label>
                    </td>
                    <td>
                        <input type="checkbox" name="check_list[]" value="a"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <label>Achternaam:</label>
                    </td>
                    <td>
                        <input type="checkbox" name="check_list[]" value="b"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <label>Adres</label>
                    </td>
                    <td>
                        <input type="checkbox" name="check_list[]" value="c"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <label>Plaats</label>
                    </td>
                    <td>
                        <input type="checkbox" name="check_list[]" value="d"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <label>Postcode</label>
                    </td>
                    <td>
                        <input type="checkbox" name="check_list[]" value="e"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <label>Zoeken</label>
                    </td>
                    <td>
                        <input type="text" name="Zoeken" value="f"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <label style="margin-top:5px;"></label>
                    </td>
                    <td>
                        <input id="submitfilter" type="submit" style="margin-top:5px;" class="btn">Zoeken</input>
                    </td>
                </tr>
            </table>
            <?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.


                }
            }
            ?>
        </form>

这是我目前使用的形式。

【问题讨论】:

  • 为什么不使用 jQuery 来检测选中复选框的值并通过 AJAX/POST 将其发送到您的 PHP 脚本?
  • @Kieron606 也是一个选择,我还是 JQuery 的新手,所以我不知道如何自己写一个像样的解释。
  • 最简单的方法是在复选框名称后使用 [] 并为复选框赋予相同的名称..
  • 'SELECT ' . join(', ', $checkboxen) . ' FROM table'...!?当然,您需要在此处将您的值列入白名单以避免 SQL 注入并将结果包含到允许的列中。

标签: php html forms checkbox mysqli


【解决方案1】:

尝试将 Jquery 添加到您的页面。 假设复选框类为.checkboxtd

$(document).on('change','.checkboxtd',function () {

if($(this).is(':checked'))
{
    //do some thing
}
else
{
    //do some thing
} 
});

【讨论】:

  • 如何在服务器上进行 MySQL 查询?
  • 我也想知道它是如何进行 MySQL 查询的
【解决方案2】:

我用以下代码修复了它:

<form name="filter"  style="float:left;" method="post">
            <table>
                <tr>
                    <td>
                        <label>Voornaam:</label>
                    </td>
                    <td>
                        <input type="checkbox" name="first_name" id="inh" value="a_Voornaam"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <label>Achternaam:</label>
                    </td>
                    <td>
                        <input type="checkbox" name="last_name" id="inh" value="a_Achternaam"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <label>Adres</label>
                    </td>
                    <td>
                        <input type="checkbox" name="address" id="inh" value="a_Adres"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <label>Plaats</label>
                    </td>
                    <td>
                        <input type="checkbox" name="city" id="inh" value="a_Woonplaats"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <label>Postcode</label>
                    </td>
                    <td>
                        <input type="checkbox" name="zipcode" id="inh" value="a_Postcode"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <label>Zoeken</label>
                    </td>
                    <td>
                        <input type="text" name="Zoeken" />
                    </td>
                </tr>
                <tr>
                    <td>
                        <label style="margin-top:5px;"></label>
                    </td>
                    <td>
                        <input id="submitfilter" type="submit" style="margin-top:5px;" class="btn"/>
                    </td>
                </tr>
            </table>
            <?php
            if(!empty($_POST)){
                var_dump($_POST);

                foreach ($_POST as $key => $row){
                    if(empty($values)) {
                        $values = $row;
                    } else {
                        $values .= ', ' . $row;
                    }
                }
                $txt = $_POST['Zoeken'];
                echo $values;

                ?><br><?php
                echo $txt;
            }
            ?>
        </form>

【讨论】:

    猜你喜欢
    • 2020-11-14
    • 2010-11-20
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 2023-04-04
    相关资源
    最近更新 更多