以前看过一个jquery做的省,市,县的联动(主要是json),不过最近帮同事看一个类似的功能,突然想不起了,还得在看一遍啊...
大概思路应该都知道哈,每个select发生改变的时候,触发事件。。
jQuery("#selectProvince").change(function(){
var provinceid=jQuery("#selectProvince").val(); //获取选中的id,主要传参数 $("#selectCity option").remove(); $("#selectArea option").remove(); //把selectCity,selectArea下拉框中的option清空 jQuery.ajax({ type: 'GET', url: 'getxian.php?id='+provinceid, dataType: 'json', //规定返回的格式是json success: function(rlt) { if(rlt.length==0){ //判断rlt对象的长度若为0,下面无数据 jQuery("#selectCity").append("<option value='0'>暂无数据</option>"); jQuery("#selectArea").append("<option value='0'>暂无数据</option>"); //增加新的option选项,比js容易多了! jQuery("#ddZip").html(""); //div内容清空 jQuery("#ddCode").html(""); }else{ jQuery("#selectCity").append("<option value='0'>请选择</option>"); jQuery.each(rlt, function(k, v){ //哈哈,这里开始遍历对象了 jQuery("#selectCity").append("<option value='"+v.cityid+"'>"+v.city+"</option>"); }); } } });
}
主要说一下json吧,时间有限啊。。。
$provinceid=$_GET["id"];
$sql="SELECT * FROM `cities` where provinceid=".$provinceid;
$query = mysql_query($sql);
$province_list=array();
while($row = mysql_fetch_array($query)){
$province_list[$row['cityid']]['cityid']=$row['cityid'];
$province_list[$row['cityid']]['city']=$row['city'];
}
echo json_encode($province_list); //二维数组用json_encode重新转化
那前台会自动转化为json格式的,像
{"110100":{"cityid":"110100","city":"/u5e02/u8f96/u533a"},"110200":{"cityid":"110200","city":"/u53bf"}}
那遍历对象就明白了吧。。
jQuery.each(rlt, function(k, v){
jQuery("#selectCity").append("<option value='"+v.cityid+"'>"+v.city+"</option>");
});
有什么问题,欢迎指出,今天还有事,就到这吧。