php thinkphp 实现二级联动 三级联动 四级联动 多级联动 附件带数据库 带选中。
如果不妥地方 欢迎指导,共同学习和进步。
分享是种美德。
页面:<script></script><br>
<!-- 如果不保持选中状态 可以把 <if></if>标签内容都去掉 --><br>
<!-- 每个select是一级 你可以只有两个select 就是二级联动,三个就是三级联动,四个就是四级联动 以此类推 我做了一个四级联动,一个二级联动 正常 --><br>
<br>
<!-- 地域 --><br>
<div>
<br>
<label>实验室地域</label><br>
<div>
<br>
<select><br>
<option>城市</option>
<br>
<volist><br>
<option>selected='selected'>{$vo['title']}</option>
<br>
</volist><br>
</select><br>
<select><br>
<option>学校</option>
<br>
<!-- 保持上回选中 --><br>
<if><br>
<php><br>
$region2 = D('LabTypeRegion')->where(array('id'=>$row['region2_id']))->getField('title');<br>
</php><br>
<option>{$region2}</option>
<br>
</if><br>
<!-- 保持上回选中 --><br>
</select><br>
<select><br>
<option>学院</option>
<br>
<!-- 保持上回选中 --><br>
<if><br>
<php><br>
$region3 = D('LabTypeRegion')->where(array('id'=>$row['region3_id']))->getField('title');<br>
</php><br>
<option>{$region3}</option>
<br>
</if><br>
<!-- 保持上回选中 --><br>
</select><br>
<select><br>
<option>实验室</option>
<br>
<!-- 保持上回选中 --><br>
<if><br>
<php><br>
$region4 = D('LabTypeRegion')->where(array('id'=>$row['region4_id']))->getField('title');<br>
</php><br>
<option>{$region4}</option>
<br>
</if><br>
<!-- 保持上回选中 --><br>
<br>
</select><br>
</div>
<br>
</div>
<br>
<script>//设置默认,页面加载时恢复默认选项。<br />
function region_default() {<br />
$("option[value='-1']").attr('selected', 'selected');<br />
}<br />
function setregion(num, address_id) {<br />
var next = num + 1;<br />
$.ajax({<br />
type: 'POST',<br />
//设置json格式,接收返回数组。<br />
dataType: 'json',<br />
url: '',<br />
//ajax传递当前选项的value值,也就是当前的region_id。<br />
data: 'region_id=' + $('#region_' + num + '_' + address_id).val(),<br />
success: function(msg) {<br />
//如果返回值不为空则执行。<br />
if (msg != null) {<br />
var option_str = '';<br />
//循环书写下一个select中要添加的内容。并添加name标记。<br />
for (var i = 0; i < msg.length; i++) {<br />
option_str+='<option name="region_'+next+'"value="'+msg[i].id+'">'+msg[i].title+'';<br />
}<br />
//删除下一个select中标记name为next的内容。<br />
$("option[name='region_" + next + "']").remove();<br />
//向下一个select中添加书写好的内容。<br />
$('#region_' + next + '_' + address_id).append(option_str);<br />
} else {<br />
//如果返回值为空,则移除所有带标记的option,恢复默认选项。<br />
for (var i = next; i <= 4; i++) {<br />
$("option[name='region_" + i + "']").remove();<br />
}<br />
}<br />
}<br />
<br />
})<br />
}<br />
</script><br>
<!-- 地域 -->
控制器: /**<br>
* [labindex 多级联动]<br>
* @return [type] [description]<br>
*/<br>
public function labindex(){<br>
//实验室地域<br>
$d=D('LabTypeRegion');<br>
if(IS_POST){<br>
if($_POST['region_id']){<br>
$region_id = $_POST['region_id'];<br>
$condition['pid'] = $region_id;<br>
$list = $d->where($condition)->select();<br>
// echo json_encode($list);<br>
$this->ajaxReturn($list);<br>
}<br>
}else{<br>
$condition['pid'] = array('neq',0);<br>
$condition['level'] = 1;<br>
$list = $d->where($condition)->select();<br>
$this->assign('list',$list);<br>
<br>
}<br>
//实验室地域<br>
<br>
$this->display();<br>
}
多级联动.zip ( 3.31 KB 下载:8 次 )