【发布时间】: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