2012-11-26 19 views
1

我的聯繫人表單頁面(用於用戶編輯詳細信息)有兩個下拉字段「國家」和「城市」。 我想在用戶編輯他的詳細信息時,「城市」字段將被禁用,直到在「國家/地區」下拉菜單中選擇某項內容。從下拉框中選擇時啓用字段

<form name="item" action="<?php echo base_url(true) ?>" method="post"> 

<label><?php _e('Country', 'my_theme'); ?></label> 
<?php ItemForm::country_select(get_countries(),user()) ; ?> 

<label><?php _e('City', 'my_theme'); ?></label> 
<?php ItemForm::cities_select(get_cities(),user()) ; ?> 

<button class="itemFormButton" type="submit"></button> 
</form> 

我在JavaScript試圖「onchange」,可能與錯誤的語法...

如何創建呢? Thx。

+0

你可以粘貼在您使用'onchange'事件中的代碼,看到失敗的原因。 –

+0

請刪除您的問題中的php標籤。這個問題對php沒有幫助。 – arkascha

回答

1

這可以幫助你http://jsfiddle.net/GZ269/。這使用jquery。

Country:<br /> 
<select id="drop1"> 
    <option value="">Select Country</option> 
    <option value="c1">Country 1</option> 
    <option value="c2">Country 2</option> 
</select> 
<br /> 
City:<br /> 
<select id="drop2" disabled > 
    <option value="">Select Country</option> 
    <option value="c1">Country 1</option> 
    <option value="c2">Country 2</option> 
</select> 

JavaScript函數:

$("#drop1").change(function(){ 
    var country = $(this).val(); 

    if(!country){ 
     $("#drop2").attr("disabled", true); 
     return false; 
    } 

    $("#drop2").attr("disabled", false); 
});​ 
0

你應該使用JavaScript的onchange事件做到這一點,而當該事件被觸發,你有兩個選擇:

  • 查詢了與阿賈克斯選擇的國家的城市。
    • 這很好,如果你支持(幾乎)所有的國家在世界上。
    • 在這裏你必須開發一個PHP腳本來查詢這個事件被觸發。
  • 對所有支持國家的城市都有很好的排列。
    • 太龐大,如果需要你覆蓋很多國家。
    • 不太靈活,如果您需要爲任何國家添加更多城市。
+0

我已經嘗試過了,請參閱上文,您可以幫助您使用正確的語法嗎?謝謝, – blsn

+0

你呢?那麼,我不知道'ItemForm'是什麼。但就我所見,國家要素與城市要素之間沒有相互作用。 –

+0

它們之間通過相同的SQL數據庫中的鏈接表進行交互。 – blsn