用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4499|回复: 1
收起左侧

[讨论/交流] js获取php数组实现联动下拉select怎么办?

[复制链接]
发表于 2011-6-2 17:55:05 | 显示全部楼层 |阅读模式
mtypes表

mtypeid mtypename     channelid mid
1         作品上传         1         12
4         青梅竹马         1         137
5         布袋猪绘本漫画         2         139
6         布袋猪造型         2         139
7         卡通                 2         112
8         漫画                 2         151
9         我的卡通         1         152
10         彩色短篇         2         130


我现在想把数据库表里的内容查询后放入一个数组,然后js获取这个数组实现联动下拉select怎么办?

第一个下拉菜单显示mtypename,第二个下拉菜单显示mid
发表于 2011-6-2 18:24:22 | 显示全部楼层
本帖最后由 zhouli520 于 2011-6-2 18:55 编辑

不太清楚你的联动要求,我就架设你这张表的关系是自关联了,假设channelid=1为父类了
我jquery也不太好,代码我没有实际验证,大概思路就是这样了,你自己研究下吧,记得导入jquery的包

HTML复制代码
 
 
V:viewtype
<script language="JavaScript">
<!--
function getmtypes(mid,url)
{
   $.post(url+"mtypes/getmtypes",{id:mid},
       function(data){
           $("#mtypes_child").html(data);            
           });    
}
 
 
-->
</script>
 
<select name="mtypes_father"   on*change="getmtypes(this.value,'<?php echo base_url().'index.php/'?>')"><?php $this->TypeModel->viewmtypes(set_value('mtypes_father')); ?></select>
<select id="mtypes_child" name="mtypes_child">
<option>--Select--</option>
<?php if(set_value('mtypes_father')!null){$this->TypeModel->getmtypes(set_value('mtypes_father'),set_value('mtypes_child'));} ?>
</select>
 
复制代码
PHP复制代码
 
C:mtypes
function getmtypes(){
    $mid = $this->input->post('id');
    $this->TypeModel->getmtypes($mid);
}
 
M:typemodel
// $backid是在你如果这是个表单提交里面的话,这个就是表单提交原数据的ID,方便用户提交后因为验证不通过,返回页面时不需要重新选择
function viewmtypes($backid=0){
    $query = $this->db->get_where('mtypes',array('channelid'=>1));
    if($query->num_rows()>0){
        $result = $query->result_array();
        if($backid==$result[$i]['mtypeid']){
            echo '<option value="'.$result[$i]['mtypeid'].'" selected>'.$result[$i]['mtypename'].'</option>'
        }else{
            echo '<option value="'.$result[$i]['mtypeid'].'">'.$result[$i]['mtypename'].'</option>'
        }
    }
}
 
function getmtypes($id,$backid=0){
    $query = $this->db->get_where('mtypes',array('mid'=>$id));
    if($query->num_rows()>0){
        $result = $query->result_array();
        if($backid==$result[$i]['mtypeid']){
            echo '<option value="'.$result[$i]['mtypeid'].'" selected>'.$result[$i]['mtypename'].'</option>'
        }else{
            echo '<option value="'.$result[$i]['mtypeid'].'">'.$result[$i]['mtypename'].'</option>'
        }
       
    }
}
 
复制代码

本版积分规则