• 20180825 ajax PHP html js 实现 三级联动(省 市 区)


    html +  js   在一个页面

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>三级联动</title>
    <script type="text/javascript" src="../jquery-3.2.1.min.js"></script>
    </head>
    <body>
    省:<select name="" id="sheng"></select>
    市:<select name="" id="shi">
    	<option value="city">请选择市</option>
    </select>
    区:<select name="" id="qu">
    	<option value="county">请选择区</option>
    </select>
    </body>
    </html>
    <script>	
    	$(function(){
    		//获取省的信息  方法 观察表所得  0是父级id
    		ajaxFun(0,"sheng");
    	})
    	//调用方法
    	function ajaxFun(id,type){
    		$.ajax({
    			url:"sanji.php",//请求的服务器地址
    			data:{id:id},//发送数据
    			success:function(data){  //ajax执行成功的回调
    				strToArr(data,type);//执行成功的方法
    			}
    		});
    	}
    //  调用成功方法   字符串转数组 
    	function strToArr(str,type){
    		  var arr=str.split("^"),//一维数组  先根据这^分
    			  brr=[];//用来存字符串转数组的数组
    		for(var i=0;i<arr.length;i++){
    			var temp=arr[i].split(",");//再根据这个,分
    			brr.push(temp);//分完添加到定义好的数组里面
    		}
    		//往页面追加元素方法
    		addHtml(brr,type);
    	}
    	//往页面追加元素
    function addHtml(brr,type){
        var str='<option value="">请选择省</option>';//刚开始定义下拉
    	for(var i in brr){//遍历数组
    		str += '<option value="'+brr[i][0]+'">'+brr[i][1]+'</option>';
    	   }
    	    $('#'+type).html(str);//整理好的元素 添加到定义好的str
    }
    	//省的下拉 值改变的时候  添加事件
    	$('#sheng').change(function(){
    	$('#qu').html('<option value="">请选择区</option>');//省重新选择的时候清空区 	
    		var id=$(this).val(); //显示当前省的id
    		ajaxFun(id,"shi");//省下拉重新选择的时候 市的值跟着变化
    	})
    	//市的下拉 值改变的时候  添加事件
    	$('#shi').change(function(){
    		var id=$(this).val();//显示当前市的id
    		ajaxFun(id,"qu");//市下拉重新选择的时候 区的值跟着变化
    	})
    </script>
    

      

    php

    <?php
    //$db 是数据库的连接资源
    $db=new MySQLi("localhost","root","","z_0705");
    !mysqli_connect_error()or die("你连的什么玩意");
    $db->query("set names utf8");
    //接受数据
    	$id=$_GET['id'];
    //写sql语句  条件查询  查表 父id=0
    $sql=" select id,area_name  from dt_area where area_parent_id=$id;";
    //执行sql语句  返回  结果集
    $res=$db->query($sql);
    //把结果集转成数组
    $arr=$res->fetch_all();
    //返回数据  字符串
    arrToStr($arr);
    //二维数组转字符串
    function arrToStr($a){//二维数组转字符串
    	$brr=array();//存转好字符串的数组
    	foreach($a  as  $v){ 
    		$temp=implode(",",$v); //整合元素之间这个,隔开
    		$brr[]=$temp;//分好存到这个定义好的数组里面
    	}
    	echo implode("^",$brr);//整合字符串之间这个^隔开
    }
    

      

  • 相关阅读:
    xml根据属性去重。如csprj去重
    table中td的内容换行。
    基于jq的表单填充
    c#包含类文件到csprj中
    t4 根据表名数组生成实体
    js中找string中重复项最多的字符个数
    一步步配置cordova android开发环境
    .net framework卸载工具
    Sql Server查询视图和表
    DbHelper.ttinclude 更新,查询视图和表
  • 原文地址:https://www.cnblogs.com/sp1234/p/9533257.html
Copyright © 2020-2023  润新知