我需要保存/检索从网页到PHP到MySQL的一系列复选框/值,然后再返回。
在MySQL中,它们将存储为JSON字符串,如下所示:{"cb1":0,"cb2":0,"cb3":1,"cb4":0}
除了(1)将复选框+ vals读入数组,然后(2)将其转换回JSON字符串(如上所示)之外,一切正常。
Display JSON List (#display_all)
按钮需要救援。
示例HTML:
<div id="chkbox"></div>
<input type="button" id="create_cb" value="Create Checkboxes" />
<input type="button" id="mybutt" value="Add New Checkbox" />
<input type="button" id="display_all" value="Display JSON list" />
示例JS:
var chk, json = '{"cb1":0,"cb2":0,"cb3":1,"cb4":0}';
$('#create_cb').click(function(){
var arrJson = JSON && JSON.parse(json) || $.parseJSON(json);
for(key in arrJson){
chk = (arrJson[key]==1)? 'checked="checked"' : '';
$('#chkbox').append(key +': <input id="'+key+'" type="checkbox" '+chk+' /> ');
}
$(this).hide();
$('#display_all').show();
});
$('#display_all').click(function(){
var arrCB = $("#chkbox>input[type='checkbox']").map(function(){return this.value;});
var text = JSON.stringify(arrCB);
alert(text);
});
我已经审核了以下SO帖子,但在我的案例中无法解决如何使用这些解决方案。
How can I send checkboxes data into JSON array?
JQuery: Turn array input values into a string optimization
我从this和this了解到术语&#34;关联数组&#34;是不正确的。我真的在创建一个具有多个属性的对象。但是,最常用的术语表达了所需的字符串化结果。
答案 0 :(得分:1)
将您的arrCB创建为匿名对象,然后遍历您的复选框并将其ID分配给arrCB:
$('#display_all').click(function(){
var arrCB = {};
$("#chkbox>input[type='checkbox']").each(function(){
var el = $(this);
var id = el.attr('id');
arrCB[id] = (this.checked ? 1 : 0)
});
var text = JSON.stringify(arrCB);
alert(text);
});