PHP将复选框的值传递给查询

时间:2015-06-11 03:56:37

标签: php checkbox pdo

您好我有这个表格,带有3个复选框:

<form action="send.php">
<input type="checkbox" name="txt_group" value="CID">CID
<input type="checkbox" name="txt_group" value="OSDS">OSDS  
<input type="checkbox" name="txt_group" value="SGO">SGO
<input type="submit">
</form>

在我的send.php中,我有这段代码:

$stmt = $dbc->query("SELECT * FROM tblcontactlist WHERE contactGroup=:cgroup");
$stmt->bindParam(':cgroup', $_POST['txt_group']);
$stmt->execute();

我认为如果我只勾选1个复选框,这将有效。但如果我选择2-3复选框怎么办?这个查询仍然有用吗?

4 个答案:

答案 0 :(得分:4)

如果多个name不是input,则您不能拥有相同的array,否则它们将被last覆盖。试试 -

<form action="send.php">
<input type="checkbox" name="txt_group[]" value="CID">CID
<input type="checkbox" name="txt_group[]" value="OSDS">OSDS  
<input type="checkbox" name="txt_group[]" value="SGO">SGO
<input type="submit">
</form>

使用php,示例查询将是 -

$values = implode("','", $_POST['txt_group']);
$values = $mysqli->real_escape_string($values);
"SELECT * FROM tblcontactlist WHERE contactGroup IN ('" . values . "')"

答案 1 :(得分:2)

将输入名称更改为数组

<input type="checkbox" name="txt_group[]" value="CID">CID

然后$_POST['txt_group']获取您选中的数组列表

答案 2 :(得分:1)

在您的代码中,您将获得与此相同的所有复选框的相同名称

<input type="checkbox" name="txt_group" value="CID">CID

尝试将名称更改为

之类的数组
<input type="checkbox" name="txt_group[]" value="CID">CID
<input type="checkbox" name="txt_group[]" value="OSDS">OSDS  
<input type="checkbox" name="txt_group[]" value="SGO">SGO

使用

在服务器端打印
print_r($_POST['txt_group']);

答案 3 :(得分:0)

是的,如果要将值作为数组发布,则必须使用变量名称的方括号。此名称=&#34; text_group []&#34;是对的..