将一组对象作为ajax发布数据发送?

Ben*_*Ben 11 javascript ajax jquery

我的总体目标是在页面上获取所有部分下拉菜单并将其发送给php文件进行处理.

现在,我在jQuery中执行此操作的方式是创建一个整体调度数组,然后将要更新的每个元素添加到该数组中.所以我有类似的东西:

var schedule = [];
var data = { 
   'user_id' : '12', 
   'day_of_week' : 'Monday',
    'when' : 'start',
    'time' : '12 AM'
 }
schedule.push(data);
var data = { 
   'user_id' : '13', 
   'day_of_week' : 'Tuesday',
    'when' : 'end',
    'time' : '12 AM'
 }
schedule.push(data);
// schedule would have two objects in it
Run Code Online (Sandbox Code Playgroud)

显然是循环和东西.

因此,我的schedule数组中有两个对象,在本例中.

现在,是否可以将该计划数组用作ajax数据?如果我执行以下操作,它将无效:

$.ajax({
  url: 'http://something.com/ajax',
  data: schedule,
  type: 'POST'
});
Run Code Online (Sandbox Code Playgroud)

但是,如果我改为将其改为schedule[0]工作正常,但显然只是对于计划数组中的第一件事.

noo*_*oob 11

data属性应该是一个对象.

你能做的是:

$.ajax({
  url: 'http://something.com/ajax',
  data: {schedule: schedule},
  type: 'POST'
});
Run Code Online (Sandbox Code Playgroud)

所以,如果你在PHP中收到这个,你就有了$_POST["schedule"].这与JavaScript中的完全相同.

喔是的,我已经忘了...也看看.serialize().serializeArray()!


Chr*_*ker 3

确保您使用的是正确版本的 jQuery。在早期版本中,你必须通过刺痛;而在早期版本中,你必须通过刺痛。新版本对变量使用“智能猜测” data。您可以显式告诉 jQuery 您正在向其传递带有参数的 javascript 对象dataType,也可以让 jQuery 自行解决。

文档

jQuery.ajax()- http://api.jquery.com/jQuery.ajax/