首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不带ajax的Post JSON值

不带ajax的Post JSON值
EN

Stack Overflow用户
提问于 2016-06-24 03:29:03
回答 1查看 270关注 0票数 0

我有一个简单的HTML表单,它收集了四个不同的值。我想将收集到的数据以JSON格式发布到API服务器。

代码语言:javascript
复制
<body>
<h2>Form</h2>

<form action="/endpoints" method="post" onsubmit="return profile();">

MAC Address:<input type="text" id="mac" name="mac" size="12"/> 

<br/>Select Catagory:<br/>
<select name="catagory" id="catagory">
<option value="SmartDevice">SmartDevice</option>
<option value="Printer">Printer</option>
<option value="Printer">Printer</option>
</select>
<br/>Select Family:<br/>
<select name="family" id="family">
<option value="Android">Android</option>
<option value="Ricoh">Ricoh</option>
<option value="Canon">Canon</option>
</select>
<br/>Name:<br/>
<select name="name" id="name">
<option value="Android">Android</option>
<option value="Ricoh Multifunction Printer">Ricoh Multifunction Printer</option>
<option value="Canon Printer">Canon Printer</option>
</select>


<input type="submit" style="width: 200px;" id="submit" onclick="return profile();">

<script type="text/javascript">
{literal}
function profile (){
var addr = document.getElementsByName("mac")[0].value;
var str_array = addr.split(',');
var nam = document.getElementsByName("name")[0].value;
var famil = document.getElementsByName("family")[0].value;
var catagor = document.getElementsByName("catagory")[0].value;
for(var i = 0; i < str_array.length; i++) {
   str_array[i] = str_array[i].replace(/^\s*/, "").replace(/\s*$/, "");
   var output = '[' + JSON.stringify({mac: str_array[i], device: {category: catagor, family: famil, name: nam}}) + ']';
};
return output;
}
{/literal}
</script>
</form>
</body>

如果在控制台中调用profile ();,则可以获得所需的JSON输出。但发布的数据与单行中的所有值都不同。

我希望post数据是这样的:

代码语言:javascript
复制
[{"mac": "aabbccddeeff", "device": {"category": "Printer", "family": "Xerox", "name": "Xerox WorkCenter"}},
 {"mac": "bbccddeeffaa", "device": {"category": "Printer", "family": "Xerox", "name": "Xerox WorkCenter"}},
 {"mac": "ccddeeffaabb", "device": {"category": "Printer", "family": "Xerox", "name": "Xerox WorkCenter"}}]'

请帮帮我,我是个新手。:-)

EN

回答 1

Stack Overflow用户

发布于 2016-06-24 03:32:52

首先构造一个数组的output。然后使用JSON.strigify将其转换为JSON blob,它将成为ajax调用的一部分。

此外,您不能返回被修改的数据,这些数据是表单元素的一部分,您需要从JS进行显式的ajax调用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38000235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档