2012-11-26 22 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