我知道json应该是怎样的。它是一个包含元素(A,B,C)的数组,每个元素在数组中有4个不同的值。
{
"A":["157","219","",""],
"B":["157","576","",""],
"C":["654","341","",""]
}
尝试解决方案1:
jQuery(document).on('click', '#btn_save', function(){
var data = jQuery('#hetfo_form').serialize();
console.log(data);
});
<button type="button" id="#btn_save"></button>
是的,我不提交带有提交事件的表单,但是当我点击表格外的按钮时,请阅读表格的内容。
<form id="hetfo_form" action="#" method="post">
<select class="form-control" name="A[]">
<option value="2">......</option>
<option value="3">......</option>
...
</select>
<select class="form-control" name="A[]">
<option value="2">......</option>
<option value="3">......</option>
...
</select>
<select class="form-control" name="B[]">
<option value="2">......</option>
<option value="3">......</option>
...
</select>
<select class="form-control" name="B[]">
<option value="2">......</option>
<option value="3">......</option>
...
</select>
<select class="form-control" name="C[]">
<option value="2">......</option>
<option value="3">......</option>
...
</select>
<select class="form-control" name="C[]">
<option value="2">......</option>
<option value="3">......</option>
...
</select>
</form>
控制台上面代码的结果如下所示: A%5B%5D = 2及A%5B%5D =安培; A%5B%5D = 40&安培; A%5B%5D = 775&安培; A%5B%5D = 3及A%5B%5D =安培; A%5B%5D =安培; A%5B%5D =安培; A%5B%5D =安培; A%5B%5D =安培; A%5 B%5D =安培; A%5B%5D = < / p>
看起来我甚至写了select name =“C []”它不被识别为数组C而是一个名为C []的变量。括号“[”“]”作为常规字符串处理。
如果我使用serializeArray(),结果是: serializeArray result
尝试过解决方案2: 我也尝试创建这个函数:
function ConvertFormToJSON(form){
var array = jQuery(form).serializeArray();
var json = {};
jQuery.each(array, function() {
json[this.name] = this.value || '';
});
return json;
}
然后为数据变量分配返回值:
jQuery(document).on('click', '#btn_save', function(){
var data =ConvertFormToJSON('#hetfo_form');
console.log(data);
});
尝试过解决方案3:
var data =JSON.stringify(jQuery('#hetfo_form').serializeArray());
控制台上的结果: [{ “名称”: “ 'A []'”, “值”: “2”},{ “名称”: “ 'A []'”, “值”: “10”},{ “名称”: “ 'A []'”, “值”: “40”},{ “名称”: “ 'A []'”, “值”: “”},{ “名称”: “ 'B []'” “值”: “4”},{ “名称”: “ 'B []'”, “值”: “8”},{ “名称”: “ 'B []'”, “值”:” “},{” 名称 “:” 'B []'”, “值”: “”},{ “名称”: “ 'C []'”, “值”: “64”},{ “名” : “ 'C []'”, “值”: “26”},{ “名称”: “ 'C []'”, “值”: “”},{ “名称”:“ 'C []' ”, “值”: “”}]
我做错了什么?获取请求的json结果的正确html和jquery代码是什么? 我不想刷新整个页面,只是获取请求的结果并使用console.log()显示它。 谢谢
答案 0 :(得分:0)
json_string = $('your_form').serialize();
您可以在此处找到更多信息 - jquery documentation
答案 1 :(得分:0)
你可以尝试:
1)关于数组键:如果你需要它们,你可以使用PHP(for,foreach)生成数组的键,因为javascript不会以这种方式生成整数键(对于PHP,它们是由生成的默认来自PHP命名约定):
$fields = 3;
for($n=0; $n<$fields; $n++)
{
echo '<select class="form-control" name="A['.$n.']">';
echo '</select>';
}
2)在与表单控件同名的情况下使用javascript处理数据:
var myForm = document.forms.hetfo_form;
var myData_a = myForm.elements['A[]'];
for (var i = 0; i < myData_a .length; i++) {
var aData = myData_a [i];
}