2012-03-20 106 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?>'); 
}); 
相關問題