我有一个问题,因为我正在尝试编写一个加载方法并传递它的参数。我必须填充一个选择:
$("#select").load("page.php?parameter1="$("#parameter").val());
一切看起来都很好,但是当我在选择中选择一些选项时,Firebug 会给我一个错误,因为我发送的参数有一个像这样的空格:例如,如果我想发送“New York”,Firebug 会给我一个由于纽约和纽约相隔,无法识别该参数的错误。
有人可以帮我吗?
谢谢。
最佳答案
如果用于查询参数的字符串包含某些字符(例如空格),则必须对它们进行 URL 编码
var query = encodeURIComponent( $("#parameter").val() );
$("#select").load("page.php?parameter1=" + query);
作为旁注,jQuery 也为此内置了一些东西,这使得构造查询字符串变得更容易
var query = $.param({
parameter1: $("#parameter").val()
});
$("#select").load("page.php?" + query);
可以在 $.param
中包含任意数量的键/值对并获取有效的查询字符串。
或者,可以将数据直接传递给 load()
,后者又在内部调用 $.param
,这可能是处理此问题的最佳且最简单的方法诸如此类的事情
$("#select").load("page.php", {parameter1 : $("#parameter").val()});
关于Jquery加载参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45575235/