2012-03-20 118 views
4

我正在为一个网站的应用程序工作,我想知道是否有一种方法可以自动设置下拉列表中的值,以根据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甚至是在这里使用的正确工具,还是有更好的选择?

谢谢!

+0

你应该在PHP中创建一个循环选项,然后你可以比较'$ state'和当前循环值 – ianbarker 2012-03-20 14:51:06

+0

您的JS代码应该在选择被定义之后出现 - JS在浏览器遇到脚本标记时运行,这意味着您的代码在选择被解析/添加到DOM树之前正在运行。 – 2012-03-20 14:52:27

回答

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语句相比。

+0

谢谢,让它工作!几分钟后会接受 – 2012-03-20 14:58:22

1

包裹,在文件准备好,它应该工作的罚款

$(function(){ 

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

});​ 

这里是样本:http://jsfiddle.net/VPqny/1/

0

使用.val()更短,这样做对DOM准备应该足够 - 无需等待window.load:

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