js获取php数组实现联动下拉select怎么办?
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 本帖最后由 zhouli520 于 2011-6-2 18:55 编辑
不太清楚你的联动要求,我就架设你这张表的关系是自关联了,假设channelid=1为父类了
我jquery也不太好,代码我没有实际验证,大概思路就是这样了,你自己研究下吧,记得导入jquery的包
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>
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>'
}
}
}
页:
[1]