使用jquery动态选择下拉列表

时间:2014-03-29 07:07:09

标签: ajax codeigniter

我有一个文章的插入表单,有两个选择下拉列表。一个用于剖面而另一个用于子部分。第一个选择标记是正确的。当用户选择一个部分时,应该显示其子部分。我想用ajax做这个工作但没有任何反应。我搜索并找到了一些这方面的例子但是没有人能解决我的问题。

查看

<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。

1 个答案:

答案 0 :(得分:0)

更改网址

var url=<?php echo base_url(); ?>'article_controler/get_options/'+sec_id;

在ajax成功

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(); }