我仍然相对较新的jquery所以我想知道使用ajax将多个变量发送到php的最佳做法是什么。例如,我应该在包中发送变量,如:
$.ajax({
data:{
input: {x: 1, y: 2}
},
...
})
或将它们作为单个变量发送,例如:
$.ajax({
data:{
x: 1,
y: 2
},
...
})
使用其中一种是否有任何性能上的好处或任何其他好处?
谢谢你的时间, LL
答案 0 :(得分:2)
当表单中有许多字段时,此函数最简单.serialize()
<html>
<body>
<form action="#" id="formsend" method="post" name="formsend">
<input name="val1" id="val1">
<input name="val2" id="val2">
<input name="val3" id="val3">
......
</form>
<a href="javascript:;" id="btn_send" >Send</a>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type= "text/javascript"></script>
<script>
$( "#btn_send" ).click(function() {
$.ajax({
type: 'POST',
url: 'ajax/ImAjaxPhpFile.php',
data: $("#formsend").serialize(), // send all form
beforeSend: function(){
},
complete: function(){
},
success: function(a){
alert (a);
}
});
});
</script>
</body>
</html>
答案 1 :(得分:0)
这取决于您的使用情况。如果你只需要简单的变量(一个或两个),你可以像第二个一样直接传递它们。但是如果您需要传递复杂的结构化数据,那么您可以选择第一个。但同样,如果您将更复杂的结构化数据作为ajax参数,则服务器端反序列化可能会很慢。 - 一些相关链接 - Getting "The JSON request was too large to be deserialized"