我想生成像这样的JSON数据
{
"first_name": "fname",
"last_name": "lname",
"zip": "123456",
"subjects": [
{
"name": "bee"
},
{
"name": "ms"
},
{
"name": "edc"
}
]
}
来自以下表格
<form action="" method="post">
first Name:<input type="text" name="first_name"/> <br/>
last name:<input type="text" name="last_name"/> <br/>
Widget URL:<input type="text" name="zip" /> <br/>
Support:<br/>
span3:<input type="checkbox" name="name" value="bee"/><br/>
span6:<input type="checkbox" name="name" value="ms"/><br/>
span12:<input type="checkbox" name="name" value="edc"/><br/>
<p><input type="submit" /></p>
</form>
使用 jquery。对于以下 JSON 结构,此表单结构是否正确?我需要脚本来向用户提示 json
最佳答案
提交表单后,您可以改用 php 将 JSON 格式输出给用户。
使用
<?php echo json_encode($_POST); ?>
或者如果你真的需要使用 jQuery。使用以下代码:
<form action="" method="post">
first Name:<input type="text" name="first_name"/> <br/>
last name:<input type="text" name="last_name"/> <br/>
Widget URL:<input type="text" name="zip"/> <br/>
Support:<br/>
span3:<input type="checkbox" name="subjects" value="bee"/><br/>
span6:<input type="checkbox" name="subjects" value="ms"/><br/>
span12:<input type="checkbox" name="subjects" value="edc"/><br/>
<p><input type="button" id="btnsubmit" value="submit"/></p>
</form>
<pre id="json_output"></pre>
jquery 代码将是:
$(document).ready(function(){
var formObject = {};
$('#btnsubmit').click(function(){
var formInputString = $('form').serialize();
var inputParameters = formInputString.split('&');
var nameValues = [];
$.each(inputParameters,function(i){
var inputParameter = inputParameters[i].split('='); // 0 - keyName , 1 - keyValue
var keyName = inputParameter[0];
var keyValue = inputParameter[1];
if(keyName == 'subjects'){
nameValues.push({ name : keyValue});
formObject[keyName] = nameValues;
}else{
formObject[keyName] = keyValue;
}
});
var myString = JSON.stringify(formObject);
$('#json_output').text(myString);
});
});
关于javascript - 从表单生成 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16581568/