在下拉列表中自动选择正确的项目

时间:2012-03-20 14:48:49

标签: jquery mysql

我正在开发一个网站的应用程序,我想知道是否有办法在下拉列表中自动设置一个值,以便根据MySQL数据库中的值自动选择?我确信有,但我可以决定从哪里开始。例如,如果一个人在网站上有一个存储他们的姓名,地址等的个人资料,并且他们去更新它,我希望下拉列表自动设置他们最初存储在数据库中的任何内容,以便自动选择。

我正在尝试这个:

<script type="text/javascript">
    $("#state option[value='CA']").attr("selected", "selected");
</script>
          <select id="state" name="state">
            <option value="">Select One</option>
                <option value="AK">Alaska</option>
                <option value="AL">Alabama</option>
                <option value="AR">Arkansas</option>
                <option value="AZ">Arizona</option>
                <option value="CA">California</option>
Etc….

但我似乎无法让它发挥作用。一旦我开始工作,我想将其更改为:

$("#state option[value='<?=$state?>']").attr("selected", "selected");

有什么建议吗? jQuery甚至是在这里使用的合适工具,还是有更好的替代方案?

谢谢!

3 个答案:

答案 0 :(得分:4)

您必须使用文档加载事件,因为执行脚本时尚未创建选择列表:

<script type="text/javascript">
    $(function() {
        $("#state option[value='CA']").attr("selected", "selected");
    });
</script>
          <select id="state" name="state">
            <option value="">Select One</option>
                <option value="AK">Alaska</option>
                <option value="AL">Alabama</option>
                <option value="AR">Arkansas</option>
                <option value="AZ">Arizona</option>
                <option value="CA">California</option>
  

jQuery甚至是在这里使用的合适工具,还是有更好的选择?

imho它是正确的工具,因为与每行的服务器端if语句相比,它使视图更清晰。

答案 1 :(得分:1)

将它包装在文档准备就绪,它应该可以正常工作

$(function(){

    $("#state option[value='CA']").attr("selected", "selected"); 

});​

以下是示例:http://jsfiddle.net/VPqny/1/

答案 2 :(得分:0)

使用.val()更短,在DOM准备就绪就足够了 - 不需要等待window.load:

$(document).ready(function() {
    $('#state').val('<?=$state?>');
});