新的封装类

<?php
class DBDA
{
public $host="localhost";//服务器地址
public $uid="root";//用户名
public $pwd="";//密码 public $conn;//连接对象
//操作数据库的方法
//$sql代表需要执行的SQL语句
//$type代表SQL语句的类型,1代表查询,0代表增删改
//$db代表要操作的数据库名称
//如果是查询,返回二维数组
//如果是其他语句,返回true或false
function __construct($db="bilibili")
{
//造连接对象
$this->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;$i<count($attr);$i++)
{
for($j=0;$j<count($attr[$i]);$j++)
{
$str = $str.$attr[$i][$j];
$str = $str."^";
}
$str = substr($str,0,strlen($str)-1);
$str = $str."|";
}
$str = substr($str,0,strlen($str)-1);
return $str;
}
else
{
//如果是其他语句,返回true或false
if($result)
{
return "OK";
}
else
{
return "NO";
}
}
}
function PdoQuery($sql,$type=1,$db="bilibili")
{
//造数据源
$dns = "mysql:host={$this->host};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";
} }
}

三级联动

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="jquery-1.11.2.min.js"></script>
<script src="sanji.js"></script>
</head> <body>
<div id="sanji"></div>
</body>
</html>
$(document).ready(function(e) {

    var zhuti="<select id='sheng'></select><select id='shi'></select><select id='qu'></select>";

    $("#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<hang.length;i++)
{
//返回列的数组
var lie=hang[i].split("^"); str=str+"<option value='"+lie[0]+"'>"+lie[1]+"</option>";
} $("#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<hang.length;i++)
{
//返回列的数组
var lie=hang[i].split("^"); str=str+"<option value='"+lie[0]+"'>"+lie[1]+"</option>";
} $("#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<hang.length;i++)
{
//返回列的数组
var lie=hang[i].split("^"); str=str+"<option value='"+lie[0]+"'>"+lie[1]+"</option>";
} $("#qu").html(str); } }) }
<?php
include("DBDA.php");
$db = new dbda(); //接收父级代号
$pcode = $_POST["pcode"]; //根据父级代号查子级区域
$sql = "select * from ChinaStates where ParentAreaCode='{$pcode}'"; echo $db->StrQuery($sql);

AJAX:异步AJAX

异步:
1.数据传输:收发数据的时候不用等到对方接收,可以继续发送
2.AJAX:在调用处理页面处理数据的时候,下面的代码可以继续执行,效率高

同步:
1.数据传输:收发数据的时候要等到对方接收成功,才可以继续发送下一个
2.AJAX:在调用处理页面处理数据的时候,下面的代码不能执行,只有当AJAX完全执行完之后,才能继续执行下面代码

AJAX 三级联动的更多相关文章

  1. ajax验证表单元素规范正确与否 ajax展示加载数据库数据 ajax三级联动

    一.ajax验证表单元素规范正确与否 以用ajax来验证用户名是否被占用为例 1创建表单元素<input type="text" id="t"> 2 ...

  2. 使用 AJAX + 三级联动 实现分类出全国各地的省,市,区

    使用AJAX + 三级联动  实现分类出全国各地的省,市,区 也可以将下面的显示页面所写的 function循环,封装成js文件,就是在写代码软件里创建一个js文件,就和创建一个HTML或php文件一 ...

  3. ajax三级联动下拉菜单

    ajax写三级联动,先写一个文件类吧,以后用的时候直接调用即可: 来找一张表: 实现: 中国地域的三级联动:省.市.区: 图: 说一下思路: (1)当用户选择省份的时候触发事件,把当前的省份的id通过 ...

  4. 0509 关于Ajax + 三级联动示例

    关于Ajax 1.干什么的? ajax负责抓取用户名信息,传递给服务器进行校验: 2.属性: onreadystatechange:事件,该事件可以感知ajax状态(readyState)的变化.aj ...

  5. [Ajax三级联动 无刷新]

    三级联动 的效果图 html页面: <body> <label class="fl">区域:</label> <select class= ...

  6. 2019.03.25 Ajax三级联动

    所谓三级联动就是,一层接着一层,根据上一层的选择给出这一层的结果 如选择市之后,会给出相应的区,然后到相应的县这就是联动 配置视图 ​from django.core import serialize ...

  7. ajax 三级联动商品分类(转载)

    转载  自  jines     http://www.cnblogs.com/lijinblogs/p/5759399.html 思路分析:效果:当页面加载时,利用ajax异步向后台请求数据,加载一 ...

  8. Ajax三级联动

    全国省市县查询 html代码 <!doctype html> <html> <head> <meta charset="utf-8"> ...

  9. 原生javascript AJAX 三级联动

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. Unity手游之路<二>Java版服务端使用protostuff简化protobuf开发

    http://blog.csdn.net/janeky/article/details/17151465 开发一款网络游戏,首先要考虑的是客户端服务端之间用何种编码格式进行通信.之前我们介绍了Unit ...

  2. [KOJ6997]旅行商问题二

    [COJ6997]旅行商问题二 试题描述 Bob是一名旅行商,Bob同时也是一个哲学家,他深知到了一个地方就要掏出钱包把所有景点都玩到.一个城市有N个景点,其中N-1条无向道路链接成一个连通图.Bob ...

  3. Qt5 任务栏托盘功能实现

    23333 有一阵子没写博客了,研究了挺长时间qt,学到任务栏托盘时简直无语,网上找得到的代码大多是废码,Qt5不支持或者本身就有毛病不能实现却被n多人转来转去的,甚是无语. 简单托盘功能以下在Qt5 ...

  4. Mysql5.7版本编译安装及配置

    配置yum安装方式 1.配置本地yum源 vim /etc/yum.repos.d/rhel-source.repo [rhel-source] name=Red Hat Enterprise Lin ...

  5. dango foreign key 指定被引用模型的字段

    用 to_field pool_no = models.ForeignKey('SimCardPool', verbose_name=u'卡池编号', db_column='pool_no', to_ ...

  6. apache virtualhost 针对ip开放访问

    http://serverfault.com/questions/246003/apache-httpd-how-can-i-deny-from-all-allow-from-subnet-but-d ...

  7. python编码问题(2)

    先上代码: # -*- coding: utf-8 -*- import sys import urllib2 import re import chardet import sys print sy ...

  8. NUI控件扩展

    摘要:NUI组件是公司新一代的前端开发框架,它精致优雅的前端编程模型,是大家能够,或者想接受学习它的重要原因,在使用它的时候,一定不免会想增加自己的控件,让别人也能够如此优雅的使用. 其实NUI的扩展 ...

  9. [20160704]Addition program that use JOptionPane for input and output

    //Addition program that use JOptionPane for input and output. import javax.swing.JOptionPane; public ...

  10. 【转】关于Class.getResource和ClassLoader.getResource的路径问题

    Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题. Class.getResource(Stri ...