2014-03-29 185 views
0

我有一個插入窗體的文章有兩個選擇下拉列表。第一個選擇標記是正確的。當用戶選擇一個部分時,它的子部分應該被顯示。我想用ajax做這個工作,但沒有任何反應。我搜索並找到了一些關於這個的例子,但是他們都不能解決我的問題。動態選擇下拉列表與jquery

視圖

<script type='text/javascript'> 
$(document).ready(function(){ 
$('#subsec').hide(); 
$('section').change(){ 
var sec_id=$(this).val(); 
var url='article_controler/get_options/'+sec_id; 
$.ajax({ 
$('#subsec').show(); 
url:url, 
type:'post', 
success:function(resp){ 
$.each(resp,function(subsec_name)){ 
var opt=$('<option/>'); 
opt.val(subsec_name); 
opt.text(subsec_name); 
$('#subsec').append(opt); 
} 
}) 
} 

}); 
</script> 
<select id='section'> 
<?php foreach($sec->result() as $row) {?> 
<option value='<?php echo $row->sec_id ?>'><?php echo $row->sec_name ?></option> 
<?php } ?> 
</select> 
<select id='subsec'> 
<option value=''></option> 
</select> 

控制器

function get_options($sec_id){ 
$data['opt']=$this->article_model->get_options($sec_id); 
$this->load->view('insert_art',$data);}  

模型

function get_options($sec_id){ 
$query=$this->db->query('select * from subsection where sec_id='.$sec_id); 
return $query;  

我知道可能有很多錯誤,因爲這是我第一次使用jQuery和Ajax的工作。

回答

0

變更網址

var url=<?php echo base_url(); ?>'article_controler/get_options/'+sec_id; 
在阿賈克斯成功

success:function(resp){ 
$('#subsec').html(resp); 
} 

在控制器

function get_options($sec_id){ 
$data['opt']=$this->article_model->get_options($sec_id); 
foreach($data['opt'] as opt){ 
    echo "<option value=".$opt['sub_sec_id'].">".$opt['sub_sec_name']."</option>"; 
} 
} 

模型

function get_options($sec_id){ 
$query=$this->db->query('select * from subsection where sec_id='.$sec_id); 
return $query->result_array(); } 
+0

非常感謝,現在效果很好 – setara

+0

我很高興幫助你 –