如何结合表单数据构建 JSON 数据
How to build JSON data in combination with form data
嗨,我需要在 JSON 对象中构建数据并通过 ajax 帖子作为字符串发送。
我需要按以下格式发送内容:
{
"myRequest": {
"myRequestType": "updateStatus",
"fields": [
{
"item1": "data1",
"item2": "data2",
"item3": "data3",
"formUpdateField": "data4"
}
]
}
}
我有一个表单表,其中包含一个复选框,用于选择要为其发送更新的记录。 基本上,发送是更新记录的状态。
基于上述内容,我可以访问项目1,项目2和项目3数据 - 这是非表单数据。我需要将其添加到 JSON 对象中。我想我几乎可以做到这一点。但我的问题是,我还需要将表单中的数据也添加到此 JSON 对象中。
我能够将数据从表单中取出,但是如何将其添加到我正在构建的 JSON 对象中?
另一个问题是,您可以从表单表中选择多个记录
任何想法如何使用JSON/jQuery等来做到这一点?
将对象构建为对象,稍后将其字符串化。自己将 JSON 字符串字符串处理在一起比以后字符串化要困难得多。
如果您愿意仅支持现代浏览器,则可以利用 ECMA5 中提供的本机JSON.stringify()
方法。如果没有,有很多第三方脚本可以做同样的事情。
试试这个:
网页(简单表单)
<form id='myForm'>
<input type='text' name='foo' />
<input type='text' name='bar' />
<input type='checkbox' name='foobar' />
<input type='submit' value='go'>
</form>
.JS
$(function() {
//initialise object
$('#myForm').on('submit', function() {
var data = {
myRequest: {
myRequestType: 'updateStatus',
fields: [{
item1: 'data1',
item2: 'data2',
item3: 'data3',
formUpdatedField: 'date4'
}]
}
};
//iterate over form fields and add each one in to our data
$(this).find('input:not([type=submit]), select, textarea').each(function() {
data.myRequest.fields[0][$(this).attr('name')] = $(this).val();
});
//do the request
$.ajax({url: 'some/url.php', method: 'post', data: JSON.stringify(data)}).done(function() {
//on success...
});
return false;
});
});
这将迭代地将字段及其值附加到对象中,然后在将其作为 AJAX 请求的一部分发送时将其字符串化。
最后,你的fields
定义难道不能只是一个对象,而不是一个纯粹是为了容纳内部对象的数组吗?似乎没有必要,但也许您的数据结构比您展示的要多。
您可以尝试使用此问题中的serializeObject
函数将表单数据作为对象检索。然后,您可以将非表单数据添加到该对象。
也许像下面这样:
var data = $('form').serializeObject();
data.item1 = 'data1';
data.item2 = 'data2';
data.item3 = 'data3';
myJson.myRequest.fields = [data];
相关文章:
- 如何从pdftron webviewer获取表单数据
- JS验证ajax返回的html中的表单数据
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 将单击事件添加到数据表
- 预览数据表单
- Ajax数据表单序列化防止双重提交
- 如何在 Spring Framework 中处理表数据表单提交
- 发布大型数据表单 Angular JS
- 覆盖Magento中的默认数据表单提交JS活动
- 保存不带按钮的数据表单
- 更新Highchart数据表单导出按钮
- 将数据表单转换为PDF
- 我的Angular视图没有用数据表单服务器更新
- 如何在不重新加载页面的情况下获取数据表单数据库
- JavaScript SDK返回数据表单嵌套函数
- 使用php AJAX发送数据表单请求失败
- 数据表单$scope在Angular的view (page)中不显示
- 实时交换 HTML 数据表单
- 搜索parse.com数据表单html输入
- 如何在MVC中返回JSON数据表单控制器到jsp