2012-04-18 86 views
3

我可以得到一些想法或我如何填充单选按钮的选中状态(取决于从数据库加载的数据)的示例?基于json响应选择单选按钮

比如我生成从SELECT查询,看起来像一个数组:

array(
[0] => array( 
    ['note_id'] => 1 
    ['value'] => 'no' 
) 
[1] => array(
    ['note_id'] => 4 
    ['value'] => 'yes' 
) 
[2] => array( 
    ['note_id'] => 5 
    ['value'] => 'yes' 
) 
) 

复选框组样子:

<input type="radio" name="1" value="yes"> 
<input type="radio" name="1" value="no"> 
<input type="radio" name="1" value="done"> 

<input type="radio" name="2" value="yes"> 
<input type="radio" name="2" value="no"> 
<input type="radio" name="2" value="done"> 

现在使用json_encode我把结果的数据数组:

[{"note_id":"1","value":"no"},{"note_id":"4","value":"yes"},{"note_id":"5","value":"yes"}] 

我通过这些结果通过ajax回来..类似的东西? :

$j.ajax({ 
    url: readurl, 
    type: "GET", 
    data: 'sku=' + thisSku, 
    dataType: "json", 
    success: function (data){ 
     // ? now what 
    }  
}); 

有人可以帮我理解我现在可以采取json数据来选择适当的选择吗?如果note_id与输入[name]属性匹配,如何检查具有适当值的按钮,我将如何创建运行检查的循环? json甚至是处理这个问题的最好方法吗?我应该使用.getJSON()吗?

+1

+1向我们展示了学习的意图。 – 2012-04-18 14:59:06

回答

6

里面的成功回调,你可以简单地在data迭代这应该是[{"note_id":"1","value":"no"},{"note_id":"4","value":"yes"},{"note_id":"5","value":"yes"}]

DEMO

$.each (data, function (i, obj) { 
    $(':radio[name=' + obj.note_id + '][value=' + obj.value + ']').prop('checked', true); 
}); 
+0

这很好用!谢谢! – Zac 2012-04-18 15:08:28

2
var data = {"nodes": [{"note_id":"1","value":"no"},{"note_id":"4","value":"yes"},{"note_id":"5","value":"yes"}] } 

$('input:radio').attr('checked','') 
$.each(data.nodes,function(a,b){ 
    $("input[name="+b.note_id+"][value="+b.value+"]:radio").attr('checked','checked') 

}) 

也许类似的东西会为你工作...

2

JSON对象上创建一个$。每()循环,然后比较名称值note_id并添加属性

var notas = [{"note_id":"1","value":"no"},{"note_id":"4","value":"yes"},{"note_id":"5","value":"yes"}]; 


$.each(notas,function(i, v){ 
    $('input[type=radio][name=' + this.note_id + ']').prop('checked','true'); 

}); 
​ 

http://jsfiddle.net/chepe263/wLDHk/

0

尝试是这样的:

$j.ajax({ 
    url: readurl, 
    type: "GET", 
    data: 'sku=' + thisSku, 
    dataType: "json", 
    success: function (data){ 
     $.each(data, function(i, item) { 
      alert("note_id: " + item.note_id + ", value: " + item.value); 
     }); 
    }  
}); 

你脑水肿,以取代去你的代码的警报。

Greatings。