1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>三级联动</title> 6 <script src="../jquery-1.11.2.min.js"></script> 7 8 <!--三级联动是ajac来实现--> 9 </head> 10 <body> 11 <div id="sanji"></div><!--三个下拉列表--><!--把div放在这是因为,以后可以拿到别的地方使用,这就是就是一个JS的插件--> 12 13 </body> 14 <script type="text/javascript"> 15 16 $(document).ready(function(e) { 17 //要实现三级联动,需要三个下拉列表,怎样实现????? 18 19 //定义一个字符串, 写三个下拉<select> ,第一个下拉是存放省的,第二个下拉是存放市的,第三个是存放的区的 20 var zhuti="<select id=‘sheng‘></select><select id=‘shi‘></select><select id=‘qu‘></select>"; 21 // aler(zhuti); 22 23 //做了三个< select>,把这三个< select> 放到 <div id="sanji"></div>里 24 //怎么放?? 25 //根据ID,找到DIV"#sanji" 26 $("#sanji").html(zhuti); 27 //把三个下拉放到的DIV里,div<div id="sanji"></div>里有三个下拉了 28 //页面在加载时,把这三个select放到DIV里,第一个select里要填充内容,省填充完之后,要填充市,市填充完之后,在填充区。 29 30 //填充省 下拉,先要做成一个方法 31 FillSheng(); //调用这个方法就可以填充上 32 //填充市 下拉 33 FillShi(); //执行这个方法就把市填充上了 34 //填充区 下拉 35 FillQu(); // 36 37 //页面在加载时,先把这三个下拉都填上值 38 //当省选中项变化的时候,市和区要跟这变 39 40 //要给省的下拉,加一个事件 41 //根据id找到省,加一个事件,加一个.change()事件 42 $("#Sheng").change(function(){ //当省选中变化的时候去填充市和区,当省选中变化的时候,后面的市和区都跟这变,跟着变的话,这调用FillShi()方法和FillQu()方法,就可以了 43 //当省选中项变化的时候,再重新填充,市和区, 44 //填充市 45 FillShi(); 46 //填充区 47 FillQu(); 48 49 }) 50 51 //当市选中变化时候去填充区,因为区要跟着市变化,所以这个位置,给谁加事件???给市shi的下拉加一个.change()事件,这里面写填充区的代码 52 $("#Shi").change(function(){ 53 //填充区 54 FillQu(); 55 56 }) 57 58 59 }); 60 61 //把三个方法写好之后,就可以了 62 63 64 //填充省的方法 65 //如何从表中查到所有的省,每一个省的负级代号都是一样的,都是属于中国的,每一个省的负级代号都是0001,根据0001来查询,就可以查到所有省的信息 66 function FillSheng() 67 68 { //省的父极代号 69 var pcode = "0001";//定义的变量,pcode是负极代号。所有省的负极代号都是0001 70 //根据负级代号查到所有的省 71 //调.ajax 查 72 //aler(pcode); 73 $.ajax({ 74 75 url:"chili.php", 76 date:{pcode:pcode}, 77 type:"POST", 78 dataType:"TEXT", 79 success: function(data){ //success: 回调函数 返回值是data 80 //aler(data); 81 <!--返回的是字符串,需要对字符串进行处理--> 82 //拆分返回的字符串,得到行的数组 83 var hang = data.trim().split("|"); //返回hang的数组 84 // Trim()删除字符串首尾的空白(可以首尾一起,也可以指定首或尾,取决于控制参数),但会保留字符串内部作为词与词之间分隔的空格。 85 //split()拆分。本函数可将字符串依指定的规则分开。先根据行与行之间的分割,过来拆。 86 //拆完之后,会返回一个行的数组。变量hang var hang来接收。 87 //这个行的数组里面每一项都存了,一个字符串,拆分每一行,需要先取到,字符串,取到字符串就要用循环 88 var str = "" ;//拼一个字符串,默认是空的 89 for(var i=0;i<hang.length;i++) 90 { 91 //返回列的数组 92 var lie = hang[i].split("^");///通过hang取索引i,能够取到这一行里的字符串,这个字符串的每一列之间用哪一个符号分割了。 93 //在根据列与列之间的分割符,过来拆一下,列于列之间是用,"^"分割的 94 //在这个循环里,每循环一次,就可以造一个<option>,然后拼到上面 95 str = str+"<option value=‘"+lie[0]+"‘>"+lie[1]+"</option>";//再往后拼上一个,字符串(<option></option>),<option>里面要显示,省份的信息,要显示省的名称应是索引为1的"+lie[1]+",能够取到名称 96 } 97 98 $("#sheng").html(str); 99 100 101 } 102 103 }); 104 105 106 } 107 108 109 110 111 </script> 112 </html>
处理页面-------"chili.php"
1 <?php 2 3 include("DBDA.php"); 4 //造对象 5 $db=new DBDA(); 6 //传过来一个负级代号,所以这个页面,需要接收这个负级代号 7 //负级代号,存在$_POST的数组里,找到pcode的存起来$pcode 8 $pcode=$_POST["pcode"];//接收负级代号 9 //根据负级代号查询 ParentAreaCode是负级代号 传过来的负级代号是$pcode 10 $sql="select * from chinastates where ParentAreaCode=‘{$pcode}‘"; 11 //根据这条语句,能够根据负级代号,查到所有的省会信息,查到所有的省会信息之后执行 12 echo $db->StrQuery($sql);//返回字符串,就包含了所有的信息 13 //这个页面就是,给你一个负级代号,就查出子级区域,然后用字符串返回 14 15 16 ?>
时间: 2025-01-01 03:49:14