您好我有这个表格,带有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复选框怎么办?这个查询仍然有用吗?
答案 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;是对的..