博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于在smarty中实现省市区三级联动
阅读量:6656 次
发布时间:2019-06-25

本文共 2478 字,大约阅读时间需要 8 分钟。

刚开始接触php,,其实对于一些比较深入的东西还不是很了解,就像是这次的省市区联动,都是用三张表为基础编码的,原谅我的无知,谢谢。

接下来就是编码部分了:

$rs["pid"],"pname" => $rs["pname"]);}$sql2 = "select cid,cname from city where pid={
$list[0]['pid']}";$result2 = mysql_query($sql2,$conn);while($rs2 = mysql_fetch_assoc($result2)){ $list2[] = array("cname" => $rs2["cname"],"cid" =>$rs2["cid"]);} $sql3 = "select xname,xid from xian where cid={
$list2[0]['cid']}";$result3 = mysql_query($sql3,$conn);while($rs3 = mysql_fetch_assoc($result3)){ $list3[] = array("xname" => $rs3["xname"]);}$smarty = new Smarty();$smarty->left_delimiter='<{';//左边界符$smarty->right_delimiter='}>';//右边界符$smarty ->assign("content",$list);$smarty ->assign("name",$list2);$smarty ->assign("xian",$list3);$smarty ->display("show.html");?>

以上是为了从数据库中把所有的先加载出来,主要就是用到smarty,数组。其他的都没有什么可以深究的了,可以看到上面代码的最后一句话就是为了跳转到smarty的模板页面show.html

接下来我们来共同看一下模板页面的书写代码:

1  2  3  4 
5 省市级联 6 7 45 46 47 选择省份:
52 选择城市:
58 选择县城:
64 65

这里的命名不是规范,希望不要误导大家,,大家在自己编写代码的时候还是要注意自己的编码规范的。首先,我们可以看到“选择省份”的select标签,这里我们就是根据index.php页面传过来的数组利用foreach进行循环遍历,遍历出省份的id,省份名称。在这里,省份的id是必不可少的,因为它牵扯到接下来select的change事件,所以一定要注意这个地方。接下来就是异步提交的ajax事件了,我们根据之前给select的id叫做province来做他的change事件,这里ajax大家就要自己对ajax进行学习了,其实,在php里面使用smarty模板引擎是为了将后台代码与前台展示代码分离开来,但是这里为了大家能够看得仔细,所以将JavaScript代码放在页面里了,最好是在项目里面写一个JavaScript脚本然后进行导入,有利于页面的整洁,我们先看省份的ajax代码,我们在它的url属性里面让它进入到display.php页面,

so,接下来就是display页面的代码了

1 
0) {12 while ($row = mysql_fetch_assoc($result)) {13 $str[] = array("cid"=>$row["cid"],"cname"=>($row["cname"]));14 }15 //var_dump($str);16 echo (json_encode($str));17 }18 mysql_free_result($result);19 }20 }21 22 23 ?>

在这里,我们使用GET方法获取之前ajax传过来的参数,获取点击省份时候的id,根据这个id来获取这个省份下面的城市。当然了,之后的城市下面的区我们就显而易见了,但是特别要注意的是要把城市的select标签的value值获取获取出来,以便查询它所管辖的区。

assign.php代码如下

1 
0) {12 while ($row = mysql_fetch_assoc($result)) {13 $str[] = array("id"=>$row["xid"],"xname"=>($row["xname"]));14 }15 //var_dump($str);16 echo (json_encode($str));17 }18 mysql_free_result($result);19 }20 }21 ?>

希望我的提示能够对你有所帮助,谢谢!

转载于:https://www.cnblogs.com/sisl/p/4601738.html

你可能感兴趣的文章
快速构建Windows 8风格应用36-商店应用发布流程
查看>>
CCNA路由综合实验配置详解
查看>>
Cassandra 基本操作
查看>>
邮件服务器是如何路由邮件
查看>>
NetWrix Active Directory Change Reporter的使用(二)
查看>>
使用Squid构建WEB代理服务器
查看>>
Java网络编程从入门到精通(30):定制accept方法
查看>>
疯狂极客前传:用最快的速度设计一种新的编程语言
查看>>
WCF专题系列(1):深入WCF寻址Part 1
查看>>
笔记本双屏系统的组建
查看>>
RHCE学习<10>LVM分区管理、软RAID和KVM虚拟机
查看>>
三读《UNIX编程艺术》——UNIX哲学
查看>>
OSSIM中分布式消息队列应用
查看>>
如何在2000 professional上使用远程桌面
查看>>
Redis 数据结构与内存管理策略
查看>>
功能测试
查看>>
二维数组作为函数参数传递剖析(C语言)(6.19更新第5种)
查看>>
扩展ViewFlow避免和ViewPager滑动冲突,同时支持无限循环,并完美和CircleFlowIndicator结合...
查看>>
径向基(RBF)神经网络python实现
查看>>
远程数据库备份解决方案
查看>>