如何使用jQuery作为JSON字符串的这些相关下拉列表的键值对?(例如:{" 32":" 3"," 4":" 1"})
<select name="32" rel="select_items">
...
...
</select>
<select name="4" rel="select_items">
...
...
</select>
我知道使用jQuery的Serializearray()的可能性,但是我不确定如何仅在相关表单项目而不是整个表单上使用此函数。
感谢您的支持。
假设我正确理解您的问题:您希望将所有选项序列化为JSON,我会像这样做
html
<select name="32" rel="select_items">
<option value=one>1</option>
<option value=two>2</option>
</select>
<select name="4" rel="select_items">
<option value=three>3</option>
<option value=four>4</option>
</select>
jQuery
var output = {};
$("select option").each(function(){
var value = $(this).val();
output[value] = $(this).html();
});
document.write(JSON.stringify(output));
如果您只想要选定的方法,则可以使用:
var output = {};
$("select option:selected").each(function(){
var value = $(this).val();
output[value] = $(this).html();
});
或者您可以像您描述的那样,只需使用Serializearray();
jsfiddle
arr = Array();
$('select option:selected').each(function(){
arr[$(this).parent().attr('name')] = $(this).val();
});
它将返回一个数组:[" 32":" 3"," 4":" 1"]
您可以这样做,以输出{" 32":" 3"," 4":" 1"}
$x = $_POST['32'];
$y = $_POST['4'];
$z = array_merge($x, $y);
$output = json_encode($z);
这假设表单上还有其他表单字段,而您只需要这两个字段。