自己写的一个ThinkPHPajax二级菜单联动,写的不好,希望大家改进改进
IndexContr.class.php
class IndexAction extends Action {
public function index(){
$db = M("Sort");
if(IS_POST){
if($_POST['two'] == ""){
$sort = $_POST['sort_id'];
}else{
$sort = $_POST['two'];
}
var_dump($sort);
die;
}else{
$list = $db -> where('aid = 0') -> select();
$this -> assign('list',$list);
$this -> display();
}
}
public function sortlist(){
$db = M("Sort");
$data = array();
$data = $db -> where('aid=%d',$_POST['aid']) -> select();
$this -> ajaxReturn($data);
}
}
模板文件的html代码
<html>
<head>
<script type="text/javascript" src="__PUBLIC__/js/jquery-1.9.1.min.js"></script>
</head>
<body>
<div>
<form method="post" action="">
<div class="sortlist">
<div style="float:left">
<select name="sort_id" id="one">
<volist name="list" id="v">
<option value="{$v.id}" data="{$v.two_list}">{$v.name}</option>
</volist>
</select>
</div>
<div class="hello" style="float:left"></div>
<div><input type="submit" value="提交"></div>
</div>
</form>
</div>
<script type="text/javascript">
$(function(){
var id = $("#one").val();
$.ajax({
url:"{:U('Index/sortlist')}",
type:'POST',
cache:false,
dataType:'JSON',
data:{aid:id},
success:function(data){
if(data == null){
$('.hello').html('');
}else{
var html = '';
html += '<select name="two">';
$.each(data,function(k,v){
html += '<option value="'+v.id+'">'+v.name+'</option>'
})
html += '</select>';
$('.hello').html(html);
}
}
});
$("#one").change(function(){
var id = $(this).val();
$.ajax({
url:"{:U('Index/sortlist')}",
type:'POST',
cache:false,
dataType:'JSON',
data:{aid:id},
success:function(data){
if(data == null){
$('.hello').html('');
}else{
var html = '';
html += '<select name="two">';
$.each(data,function(k,v){
html += '<option value="'+v.id+'">'+v.name+'</option>'
})
html += '</select>';
$('.hello').html(html);
}
}
});
})
})
</script>
</body>
</html>
希望大家多多指点,谢谢了!