使用ajax发送多个变量的最佳实践

时间:2014-10-08 19:44:27

标签: javascript php jquery ajax

我仍然相对较新的jquery所以我想知道使用ajax将多个变量发送到php的最佳做法是什么。例如,我应该在包中发送变量,如:

$.ajax({
    data:{
        input: {x: 1, y: 2}
    },
    ...
})

或将它们作为单个变量发送,例如:

$.ajax({
    data:{
        x: 1,
        y: 2
    },
    ...
})

使用其中一种是否有任何性能上的好处或任何其他好处?

谢谢你的时间, LL

2 个答案:

答案 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"

相关问题