zoukankan      html  css  js  c++  java
  • PHP用ajia代码写三级联动下拉

    1 下面是我做三级联动下拉的步骤以及逻辑
    2 第一步:先做一个省市区表格
    3 第二步:建个PHP页面显示用我是在<body>里放<div>用来接收要显示的省市区表格信息,里面嵌入jquery-1.11.2.min.js和自己封装的三联动省市区的方法
    4 第三步:写封装方法用JS
    5 第四步:做个纯php处理页面,这个页面处理传过来的任何代号

    第一步:创建表

    运行:

    第二步:建个PHP页面显示用注意:我用的是HBuilder.exe写的编程

     1 <!doctype html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8" />
     5     <title>Document</title>
     6     <script src="jquery-1.11.2.min.js"></script>
     7     <script src="sanjiliandong.js"></script>
     8 </head>
     9 <body>
    10     <div id="sanjiliandong">
    11         <!--在这里使用三级联动插件-->
    12     </div>
    13 </body>
    14 </html>

    第三步:写封装方法用JS

      1 // JavaScript Document
      2 $(document).ready(function(e){
      3     //向div里面仍三个下拉
      4      var str = "<select id='sheng'></select><select id='shi'></select><select id='qu'></select>";
      5     $("#sanjiliandong").html(str);//三个下拉显示
      6              
      7      
      8     //当省选中的话市也会跟着变去也会变。市和区都会加载一遍
      9     FillSheng();//
     10     FillShi();//
     11     FillQu();// 12     //给省加点击事件
     13     $("#sheng").change(function(){
     14             FillShi();//
     15             FillQu();//
     16         })
     17     //给市加点击事件
     18     $("#shi").change(function(){
     19             FillQu();//
     20         })
     21 });
     22 //做三个方法分别为省市区
     23 //填充省的方法,如何在表里查询 出省的代号例如:北京0001、天津0001,中国下面所有省都是0001开头的
     24 function FillSheng()
     25 {
     26     var pcode = "0001";
     27     $.ajax({
     28         async:false,
     29         url:"chuli.php",
     30         data:{pcode:pcode},
     31         type:"POST",
     32         dataType:"TEXT",
     33         success: function(data){
     34             //返回数据,根据行于行之间的分隔符来拆,拆完之后会返回一数组/行的数组
     35             var hang = data.split("|");
     36             
     37             var str = "<option value='' >请选择地区</option>";
     38             //把行的数组遍历下用for循环...length长度
     39             for(var i=0;i<hang.length;i++)
     40             {
     41                 //把行的索引i在拆下.列与列的分隔符再拆
     42                 var lie = hang[i].split("^");//这是列的数组
     43                 str += "<option value='"+lie[0]+"'>"+lie[1]+"</option>";
     44                 
     45                 $("#sheng").html(str);
     46             }
     47         }
     48     });
     49 }
     50 //填充市的方法
     51 function FillShi()
     52 {
     53     var pcode = $("#sheng").val();
     54     $.ajax({
     55         async:false,//****
     56         url:"chuli.php",
     57         data:{pcode:pcode},
     58         type:"POST",
     59         dataType:"TEXT",
     60         success: function(data){
     61             //返回数据,根据行于行之间的分隔符来拆,拆完之后会返回一数组/行的数组
     62             var hang = data.split("|");
     63             
     64             var str = "<option value='' >请选择城市</option>";
     65             //把行的数组遍历下用for循环...length长度
     66             for(var i=0;i<hang.length;i++)
     67             {
     68                 //把行的索引i在拆下.列与列的分隔符再拆
     69                 var lie = hang[i].split("^");//这是列的数组
     70                 str += "<option value='"+lie[0]+"'>"+lie[1]+"</option>";
     71             }
     72             $("#shi").html(str);
     73         }
     74     });
     75 }
     76 //填充区的方法
     77 function FillQu()
     78 {
     79     var pcode = $("#shi").val();
     80     $.ajax({
     81         async:false,
     82         url:"chuli.php",
     83         data:{pcode:pcode},
     84         type:"POST",
     85         dataType:"TEXT",
     86         success: function(data){
     87             //返回数据,根据行于行之间的分隔符来拆,拆完之后会返回一数组/行的数组
     88             var hang = data.split("|");
     89             
     90             var str = "<option value='' >请选择乡县</option>";
     91             //把行的数组遍历下用for循环...length长度
     92             for(var i=0;i<hang.length;i++)
     93             {
     94                 //把行的索引i在拆下.列与列的分隔符再拆
     95                 var lie = hang[i].split("^");//这是列的数组
     96                 str += "<option value='"+lie[0]+"'>"+lie[1]+"</option>";
     97                 
     98                 $("#qu").html(str);
     99             }
    100         }
    101     });
    102 }

     第四步:做个纯php处理页面

    1 <?php
    2 //处理页面只有一个功能处理传过来的所有代号(省、市、区。。。)
    3 include("DBDA.class.php");
    4 $db = new DBDA();
    5 $pcode = $_POST["pcode"];//取到赋值代号
    6 $sql = "select * from chinastates where parentareacode='{$pcode}'";
    7 echo $db->StrQuery($sql);
    //这里面DBDA.class.php是我自己封装的方法类如下
     1 <?php
     2 class DBDA//类名
     3 {    //下面是成员 变量
     4     public $host= "localhost";//服务器,本机地址
     5     public $uid = "root";//用户名
     6     public $pwd = "511108";//用户密码
     7     public $dbname = "text";//数据库名称
     8         
     9 
    10 //通过上面的变量来访问数据库。在访问数据库的时候就可以直接造对象
    11 //成员方法。执行SQL语句的方法
    12 public function Query($sql,$type=1)
    13 {
    14     $db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
    15     
    16     $r = $db->query($sql);//判断是不是查询是查询就返回一个二维数组
    17 
    18     if($type==1)//如果type等于1属于查询语句,如果查询语句就要返回一个二维数组
    19     {
    20         return $r->fetch_all();//从结果集读取所有数据。因为是二维数组所以就直接return返回
    21     }
    22     else
    23     {
    24         return $r;//如果不是查询,其他语句就直接return $r
    25     }
    26 }
    27 
    28 
    29 }
  • 相关阅读:
    [原创.数据可视化系列之六]使用openlyaers进行公网地图剪切
    [原创.数据可视化系列之五]韩国"萨德"系统防御图
    [原创.数据可视化系列之四]跨平台,多格式的等值线和等值面的生成
    [原创.数据可视化系列之三]使用Ol3加载大量点数据
    [原创.数据可视化系列之二]使用cesium三维地图展示美国全球军事基地分布
    [原创.数据可视化系列之一]使用openlayers 3 显示聚合数据
    全球领先的redis客户端:SFedis
    ESSENTIALS OF PROGRAMMING LANGUAGES (THIRD EDITION) :编程语言的本质 —— (一)
    请大家帮我找一找bug —— 一个MySQL解析程序(JAVA实现)
    半个月使用rust语言的体验
  • 原文地址:https://www.cnblogs.com/aqxss/p/6263229.html
Copyright © 2011-2022 走看看