我一直想知道通过Ajax jQuery发送这么多参数的最佳方法是什么。
我知道如何通过ajax发送少量帖子参数,就像这样:
$.ajax({
type: "POST",
url: 'controller/function',
data: {
param1 : param1,
param2 : param2
},
success: function (result) {
}
});
我一直想知道如果我发送50或更高的参数怎么办。让我们说吧,
$.ajax({
type: "POST",
url: 'controller/function',
data: {param1 : param1, param2 : param2, ......., param50 : param50},
success: function (result) {
}
});
现在,如果您问我为什么需要这个,那是因为我需要发布不同的独立参数。离开这个要求,我只是想知道这是否正常,或者在服务器端或客户端方面是否有任何不良影响?
问题2,在Ajax调用中发送许多参数时,建议的最佳方法是什么。让我们说我有50"不同"我应该发布的长串。
有什么建议吗?
更新:
顺便说一句,我没有使用表格。我发送不同的长HTML字符串,我不通过表单发送它们。我只是通过像
这样的jquery抓住它们 var param1 = $(".divwrapper1").html();
var param2 = $(".divwrapper2").html();
..... and so on and so for
并使用这些变量并通过ajax
发送答案 0 :(得分:1)
我假设您提交的是大型表格。在这种情况下,您最好将序列化表单数据。检查此过程中发生的情况的一种好方法如下:
$( "form" ).on( "submit", function( event ) {
event.preventDefault();
console.log( $( this ).serialize() );
});
看看=> http://api.jquery.com/serialize/了解更多信息。
答案 1 :(得分:0)
你正在以正确的方式做到这一点!但是在ajax调用之外构建你的post参数并将它们序列化更好,这样它们只能在一个post参数中发送到服务器。如果不序列化数据,则所有参数将作为不同的后置变量发送。
var mydata={
param1 : param1,
param2 : param2,
param3 : param3,
param50 : param50
};
var myjson=JSON.stringify(mydata);
$.ajax({
type: "POST",
url: 'controller/function',
data: {alldata: myjson}, //OR you could do: data: mydata,
success: function (result) {
}
});
在服务器端,您可以通过
接收您发布的数据(在本例中为json)$posteddata=$_POST['alldata'];//posteddata now contains the data as a string (json)
现在你需要解码收到的json字符串,使其成为合适的PHP类型
$data= json_decode($posteddata);