新的封装类
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
conn = new MySQLi($this->host,$this->uid,$this->pwd,$db); } public function Query($sql,$type=1) { //判断是否出错 !mysqli_connect_error() or die("连接失败!"); //执行SQL语句 $result = $this->conn->query($sql); //判断SQL语句类型 if($type==1) { //如果是查询语句,返回结果集的二维数组 return $result->fetch_all(); } else { //如果是其他语句,返回true或false return $result; } } //Ajax调用返回JSON public function JsonQuery($sql,$type=1,$db="bilibili") { //定义数据源 $dsn = "mysql:dbname={$db};host={$this->host}"; //造pdo对象 $pdo = new PDO($dsn,"{$this->uid}","{$this->pwd}"); //准备执行SQL语句 $st = $pdo->prepare($sql); //执行预处理SQL语句 if($st->execute()) { if($type==1) { $sttr = $st->fetchAll(PDO::FETCH_ASSOC); return json_encode($attr); } else { if($st) { return "OK"; } else { return "NO"; } } } else { echo "执行失败!"; } } //Ajax调用返回字符串 public function StrQuery($sql,$type=1) { //判断连接是否成功 !mysqli_connect_error() or die("连接失败!"); //执行SQL语句 $result = $this->conn->query($sql); //判断SQL语句类型 if($type==1) { $attr = $result->fetch_all(); $str = ""; //如果是查询语句返回字符串 for($i=0;$ihost};dbname={$db}" ; 造pdo对象 $pdo="new" pdo($dns,$this-> uid,$this->pwd); //准备一条SQL语句 $stm = $pdo->prepare($sql); //执行预处理语句 $r = $stm->execute(); if($r) { if($type==1) { return $stm->fetchAll(); } else { return "OK"; } } else { return "NO"; } }}
三级联动
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
无标题文档
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
$(document).ready(function(e) { var zhuti=""; $("#sanji").html(zhuti); //填充省 fillsheng(); //填充市 fillshi(); //填充区 fillqu(); //当省选中变化的时候去填充市和区 $("#sheng").change(function(){ //填充市 fillshi(); //填充区 fillqu(); }) //当市选中变化的时候去填充区 $("#shi").change(function(){ //填充区 fillqu(); }) });//填充省的方法function fillsheng(){ //省的父级代号 var pcode="0001"; //调AJAX $.ajax({ async:false, //关闭异步,开启同步 url:"AJAX4chuli.php", data:{pcode:pcode}, type:"POST", dataType:"TEXT", success: function(data){ //拆分返回的字符串,得到行的数组 var hang=data.trim().split("|"); var str=""; for(var i=0;i"+lie[1]+""; } $("#sheng").html(str); } }); }//填充市的方法function fillshi(){ //取到市的父级代号 var pcode=$("#sheng").val(); //调用AJAX $.ajax({ async:false, url:"AJAX4chuli.php", data:{pcode:pcode}, type:"POST", dataType:"TEXT", success: function(data){ var hang=data.trim().split("|"); var str=""; for(var i=0;i "+lie[1]+""; } $("#shi").html(str); } }) }//填充区的方法function fillqu(){ //找到区的父级代号 var pcode=$("#shi").val(); //调用AJAX $.ajax({ url:"AJAX4chuli.php", data:{pcode:pcode}, type:"POST", dataType:"TEXT", success: function(data){ var hang=data.trim().split("|"); var str=""; for(var i=0;i "+lie[1]+""; } $("#qu").html(str); } }) }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
StrQuery($sql);
AJAX:异步AJAX
异步:
1.数据传输:收发数据的时候不用等到对方接收,可以继续发送2.AJAX:在调用处理页面处理数据的时候,下面的代码可以继续执行,效率高同步:
1.数据传输:收发数据的时候要等到对方接收成功,才可以继续发送下一个2.AJAX:在调用处理页面处理数据的时候,下面的代码不能执行,只有当AJAX完全执行完之后,才能继续执行下面代码