【发布时间】:2015-08-16 22:49:31
【问题描述】:
我的 codeigniter 表单中有这个简单的下拉菜单。当点击 dzongkhag(district) 时,它应该显示 geogs(towns) 的列表,但是,它不这样做。我拥有的下拉菜单不是最好的,但这是我在尝试(数周)多次失败后所能想到的。如果有人可以帮助我解决/解决/建议,我将不胜感激。
这里是sn-ps。 查看.php
<label >Dzongkhag: </label>
<select id="user_dzongkhag" name="dzongkhag" >
<option>Select Dzongkhag</option>
<option value="Bumthang">Bumtang</option>
<option value="Chhukha">Chhukha</option>
<option value="Dagana">Dagana</option>
<option value="Gasa">Gasa</option>
<option value="Haa">Haa</option>
<option value="Lhuentse">Lhuntse</option>
<option value="Monggar">Monggar</option>
<option value="Paro">Paro</option>
<option value="Pema Gatshel">Pema Gatshel</option>
<option value="Punakha">Punakha</option>
<option value="Samdrup Jongkhar">Samdrup Jongkhar</option>
<option value="Samtse">Samtse</option>
<option value="Sarpang">Sarpang</option>
<option value="Thimphu">Thimphu</option>
<option value="Trashigang">Trashigang</option>
<option value="Trashi Yangtse">Trashi Yangtse</option>
<option value="Trongsa">Trongsa</option>
<option value="Tsirang">Tsirang</option>
<option value="Wangdue Phodrang">Wangdue Phodrang</option>
<option value="Zhemgang">Zhemgang</option>
</select>
<label >Geog:</label>
<select id="user_geog" name="geog" >
<option> select geog</option>
</select>
javascript(我在 view.php 而不是 js 文件夹中实现它)
$(document).ready(function(){
$('#user_dzongkhag').change(function(){
$('#user_geog').html('<option> Fetching...</option>');
var user_dzongkhag =$('#user_dzongkhag').val();
//alert(new_div);
$.ajax({
type:"post",
data:"user_dzongkhag="+user_dzongkhag,
url:"<?php echo site_url('ajax/select_auth_geog/'); ?>",
cache:false,
success:function(resp){
//alert(resp);
$('#user_geog').html(resp);
}
});
});
});
controller.php
public function select_auth_geog(){
$user_dzongkhag= $this->input->post('user_dzongkhag');
$returnGeog=$this->ajax_model->select_auth_geog($user_dzongkhag);
foreach ($returnGeog as $key) {
echo '<option value="'.$key['name'].'">'.$key['name'].' </option>';
}
}
model.php
public function select_auth_geog($user_dzongkhag){
if($user_dzongkhag=='Bumtang'){
$user_dzongkhag=1;
}elseif($user_dzongkhag=='Chhukha'){
$user_dzongkhag=2;
}elseif($user_dzongkhag=='Dagana'){
$user_dzongkhag=3;
}elseif($user_dzongkhag=='Gasa'){
$user_dzongkhag=4;
}elseif($user_dzongkhag=='Haa'){
$user_dzongkhag=5;
}elseif($user_dzongkhag=='Lhuntse'){
$user_dzongkhag=6;
}elseif($user_dzongkhag=='Monggar'){
......
........
【问题讨论】:
-
感谢@Jonathan 的编辑
-
没问题。 :) 我发现干净的代码更容易阅读。当您在 JS 中取消注释
alert(resp);时会发生什么?此外,如果您在控制器中select_auth_geog函数的开头回显<option>,它是否有效? -
alert(resp) 给出一个警告消息框。并且呼应一个选项并没有产生任何结果。不太确定,如果我正确地完成了回声部分@Jonathan
-
警报消息框是否为空?对于回声,将其作为控制器
select_auth_geog函数的第一行:echo '<option value="candy">Candy</option>';本质上,我想知道它是否到达控制器。 -
@Jonathan,是的,消息框是空的。回声的输出是
<option value="candy">Candy</option><div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;"> <h4>A PHP Error was encountered</h4> <p>Severity: Notice</p> <p>Message: Undefined index: name</p> <p>Filename: controllers/ajax.php</p> <p>Line Number: 152</p> </div><div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;"> <h4>A PHP Error was encountered</h4> <p>Severity: Notice</p> <p>Message: Undefined index: name</p> <p>Filename: controllers/ajax.php</p> <p>Line Number: 152</p>
标签: javascript php jquery html codeigniter