我在表单中有一些信息可以使用 JS/jQuery 作为(复杂)数组(或对象,如果您愿意)发送到服务器。(jQuery 1.7.2) 我正在考虑用 JSON 巧妙地解决问题。我的代码现在可以工作,但我想知道它是否可以做得更好。
所以这个例子非常典型(数据更复杂 irl):
dataSend = { 'id': '117462', 'univers': 'galerie', 'options' : { 'email': 'hello@world.com', 'commenataire': 'blabla', 'notation' : '4' } };
$.ajax({
url: "/ajax/ajaxMavilleBox.php",
data: JSON.stringify(dataSend),
success: function(x){
smth();
}
});
在另一种情况下,我必须在没有 JSON 的情况下制作完全相同的东西。
用同样的例子:
dataSend = { 'id': '117462', 'univers': 'galerie', 'options' : { 'email': 'hello@world.com', 'commenataire': 'blabla', 'notation' : '4' } };
$.ajax({
url: "/ajax/ajaxBox.php",
data: $.param(dataSend),
success: function(x){
smth();
}
});
显然,我错过了一些东西。
网址是:
http://www.mywebsite.com/ajax/ajaxBox.php?id=117462&univers=galerie&options=%5Bobject+Object%5D
网址应该是:
http://www.mywebsite.com/ajax/ajaxBox.php?id=117462&univers=galerie&options[email]=hello@world.com&options[commenataire]=blabla&options[notation]=3
有任何简单的方法可以做到这一点(我希望我不必自己在循环中编辑数据或其他东西)
编辑:第二部分的解决方案
好的,没有JSON的最后一部分是正确的。事实上,我在我的页面中使用的是旧版本的 jQuery。$.param 对于 jQuery < 1.4 不是很好
更多信息在这里参数文档