3

データベースからロードされたデータに応じて、ラジオ ボタンのチェック状態を設定する方法のアイデアや例を得ることができますか?

たとえば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()ますか?

4

4 に答える 4

6

data成功コールバック内では、どちらをすべきかを単純に繰り返すことができます[{"note_id":"1","value":"no"},{"note_id":"4","value":"yes"},{"note_id":"5","value":"yes"}]

デモ

$.each (data, function (i, obj) {
    $(':radio[name=' + obj.note_id + '][value=' + obj.value + ']').prop('checked', true);
});
于 2012-04-18T14:56:11.297 に答える
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')

} )

たぶん、そのようなものはあなたのために働くでしょう...

于 2012-04-18T14:53:48.397 に答える
2

json オブジェクトで $.each() ループを作成し、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/

于 2012-04-18T14:53:53.300 に答える
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);
        });
    }       
});

de alerts をコードに置き換える必要があります。

グレイティングス。

于 2012-04-18T14:58:17.140 に答える