我试图了解如何修改此http://www.w3schools.com/php/php_ajax_database.asp中的示例,以便查询数据库以进行多项选择。我的意思是,如果选择了多个选项(通过在表单中添加“multiple”关键字),如何对这些多个选项进行数据库查询?
答案 0 :(得分:0)
如果不查看该页面,要从选择中发送多个值,只需在名称字段[]
后面添加<select multiple="multiple" name="foo[]">
即可。
请求数组(PHP中的$ _GET或$ _POST)将包含一个键'foo',它映射到多个'selected'值。修改完页面后,为了更清楚地了解正在发生的事情,请执行以下操作:
print_r($_GET['foo']); // or $_POST, whichever
然后,您只需要修改服务器脚本以存储(或做任何事情)接收值集。
以下示例演示如何通过将onchange处理程序注册到select元素,从多个选定值创建字符串:
document.getElementById("theSelect").onchange = function() {
var len = this.options.length;
var selected = [];
for(var i = 0; i < len; i++) {
if(this.options[i].selected) {
selected.push(this.options[i].value);
}
}
alert(selected);
//so you can do something like getUsers(selected.join(","));
};
<强> Working example. 强>
答案 1 :(得分:0)
它是一样的。不同之处在于,当您向服务器发送数据时,您会发送一个名称列表。然后你可以在服务器中使用php来构建HTML并将其返回。
答案 2 :(得分:0)
如果你使用复选框尝试使用POST方法而不是GET
xmlhttp.open("POST","getuser.php",true);
<input tabindex="3" type="checkbox" name="gender[]" id="gender" value="M">Male
<input tabindex="4" type="checkbox" name="gender[]" id="gender" value="F">Female
try print_r($_POST);
由于 Sanil