我希望将URL中的多个变量city1
和area1
(JavaScript变量)传递给PHP页面,但是我会陷入下面所示的部分。我做错了什么?
$("#list").load("selectcity.php?city1="+city1&"area1="+area1);
$.ajaxSetup({ cache: false });
答案 0 :(得分:3)
&
字符应在引号内,而不是引号外。这是更正后的代码:
$("#list").load("selectcity.php?city1="+city1+"&area1="+area1);
$.ajaxSetup({ cache: false });
GET 参数由字符&
分隔。您将2个参数传递给由&
分隔的文件。 URL中的?
符号表示其后面的下一个字符是GET
个参数。
或者您可以使用$.get
,它非常容易设置并且可以像$.load
一样正常工作:
$.get("selectcity.php", {"city1": city1, "area1": area1}, function(response){
$("#list").html(response);
});
答案 1 :(得分:1)
最好不要手动形成查询字符串,因为您将经常遇到不那么显着的错误。 jQuery提供了一种从对象自动构造查询字符串的方法:
var ajaxData = {
city1: city1,
area1: area1
};
$.get('selectcity.php', ajaxData, function(data) {
$('#list').html(data);
});
它需要稍多的代码,但保证是安全的。还有一个.load(url, data)
快捷方式,但它会发送一个POST请求而不是GET请求,这可能不是你想要的。
此外,我不确定jQuery会自动对手动形成的查询字符串进行urlencode,因此字符串连接方法可能会引入更多错误。