jQuery:从数据库加载ID标记

时间:2010-07-27 11:08:06

标签: jquery database radio-button checked

所以我有很多具有相同名称但不同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"/>

2 个答案:

答案 0 :(得分: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"内呈现<input />,并完全取消AJAX调用,那就更好了。

答案 1 :(得分: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);
        }
  });
});

抱歉我的英文。告诉我一些是否有效...