将对象数组作为 ajax 发布数据发送
Sending an array of objects as ajax post data?
我的总体目标是获取页面上的所有下拉菜单,并将其发送给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
显然在循环和东西中。
因此,在本例中,我的调度数组中有两个对象。
现在,是否可以将该调度数组用作 ajax 数据?如果我执行以下操作,它不起作用:
$.ajax({
url: 'http://something.com/ajax',
data: schedule,
type: 'POST'
});
但是,如果我将其更改为schedule[0]
它就可以正常工作,但显然仅适用于调度数组中的第一件事。
data
属性应该是一个对象。
你可以做的是:
$.ajax({
url: 'http://something.com/ajax',
data: {schedule: schedule},
type: 'POST'
});
因此,例如,如果您在PHP中收到此消息,则$_POST["schedule"]
。这与你在JavaScript中完全相同。
哦,是的,我忘了...也看看.serialize()
和.serializeArray()
!
确保您使用的是正确版本的 jQuery。在早期版本中,您必须通过刺痛;新版本对data
变量使用"智能猜测"。你可以显式地告诉jQuery你正在向它传递一个带有dataType
参数的javascript对象,或者你可以让jQuery弄清楚。
文档
jQuery.ajax()
- http://api.jquery.com/jQuery.ajax/
将其作为 JSON 传递:
$.ajax({
url: 'http://something.com/ajax',
data: {schedule: schedule},
type: 'POST',
dataType: 'JSON'
});
它会将 JSON 编码的字符串发送到服务器,服务器端语言可以解析该字符串。(在 PHP 中,它是用 json_decode()
完成的)。
相关文章:
- JQGrid使用服务器编辑后的更新数据刷新数据
- 如何将输入数据(许多数据)添加到同一页面的下表中
- 如何用使用剔除数据和“数据”两者计算的数据来过滤数据;外部“;数据
- 将计算的列值绑定到数据表数据模型
- 如何在单击事件中追加数据来自数据表
- 插入数据并用新数据刷新数据网格后,关闭弹出窗口
- 来自数组的数据表数据
- 从铁路由器访问模板中的数据上下文数据时出现问题
- flot 图未显示数据,数据未完全加载
- 在 Backbone js 中永久引用来自另一个数据的数据
- 使用 Knockoutjs 的数据表数据绑定
- AngularJS服务,从$html.get返回预加载的数据或数据
- 如何将表单输入数据从数据列表传递到我的角度控制器
- 是否有从服务器(如 postgres)中提取数据的数据可视化库
- 任何人都可以帮助我下载Excel和PDF中的Jquery数据表数据
- 从上传的 csv 数据创建数据表列定义
- 数据在数据表的初始化中消失
- Ajax数据响应数据未发出警报
- colorbox:发送带有post数据的数据属性
- 将数据表数据导出到ajaxSource