0

そのため、同じ名前でIDが異なるラジオボタンがたくさんあり、ページの読み込み時に選択するラジオボタンを特定しません。目的のボタンのIDがデータベースに保存されます。私は実際のajax呼び出しに対してこの種のソリューションを試しましたが、残念ながら機能しませんでした。

$.ajax({
        type: "POST",
        url: "load_config.php",
        dataType: "json",
        data: dataString,
        success: function(data)
        {
            var buttonID = "#"+data.buttonID; // data.buttonID = "button5"
            $(buttonID).attr("checked", true);
        }
});

HTML部分はこのような方法ですが、ボタンがたくさんある場合を除きます。

<input type="radio" id="button1" name="example" value="value1"/>
<input type="radio" id="button2" name="example" value="value2"/>
<input type="radio" id="button3" name="example" value="value3"/>
<input type="radio" id="button4" name="example" value="value4"/>
<input type="radio" id="button5" name="example" value="value5"/>
4

2 に答える 2

1

戻ってくるJSONを再確認してください。全体的なアプローチは正しいです。ここでテストできます:http://jsfiddle.net/nick_craver/KuK3Z/

私はあなたがあなたが思っているものとはまったく違うか、あなたのコードが次のように内部で実行されていないに違いありdata.buttonIDませdocument.ready

$(function() {
  $.ajax({
        type: "POST",
        url: "load_config.php",
        dataType: "json",
        data: dataString,
        success: function(data)
        {
            var buttonID = "#"+data.buttonID; // data.buttonID = "button5"
            $(buttonID).attr("checked", true);
        }
  });
});

で実行されておらずdocument.ready、要素の準備が整う前にAJAX呼び出しが終了した場合、$("#button5")セレクターはチェックするものを見つけられません。あるいは、ページをレンダリングするときにchecked="checked"内部を正しくレンダリングし、AJAX呼び出しを完全に排除することができれば、はるかに優れています。<input />

于 2010-07-27T11:12:48.537 に答える
0

データ応答を確認してみてください。

$(function() {
  $.ajax({
        type: "POST",
        url: "load_config.php",
        dataType: "json",
        data: dataString,
        success: function(data)
        {
            alert(data['buttonID']);
        }
  });
});

が未定義の場合は、PHPまたは私の最後の解決策を確認してください。そうでない場合は、次のことを試してください。

$(function() {
  $.ajax({
        type: "POST",
        url: "load_config.php",
        dataType: "json",
        data: dataString,
        success: function(data)
        {
            $("#"+data['buttonID']).attr("checked",true);
        }
  });
});

Jsonをjqueryに返すときに問題が発生しましたが、json文字列が多くのスラッシュで返されました...最初の解決策でエラーが発生した場合に備えて、これを試してください(これにより、jsonをデコードせずにサーバーから返された文字列が報告されます) :

$(function() {
  $.ajax({
        type: "POST",
        url: "load_config.php",
        dataType: "text",
        data: dataString,
        success: function(data)
        {
            alert(data);
        }
  });
});

英語でごめんなさい。それがうまくいったら何か教えてください...

于 2010-07-27T11:16:17.423 に答える