三级联动

以下为phpcms中的三级联动程序实现:

HTML代码:

 1 <!--三级联动-->
 2 <div>
 3     <form>
 4         <label>请选择收货地址:</label>
 5         <div id="p-c">
 6             <select name="province" id="province">请选择省份</select>
 7             <select name="city" id="city">请选择城市</select>
 8             <select name="region" id="region">请选择区域</select>
 9         </div>
10     </form>
11     <script src="{APP_PATH}statics/js/area.js" type="text/javascript"></script>
12     <script type="text/javascript">
13
14         var AreaObj = new Area(‘province‘,"city","region","{APP_PATH}/api.php?op=area");
15 //        AreaObj.setApiUrl = "{APP_PATH}/api.php?op=area&id=1";
16         AreaObj.render();
17     </script>
18 </div>

JS代码:

 1 //js原型
 2 var Area = function(province,city,region,apiurl){
 3     this.province = province;
 4     this.city = city;
 5     this.region = region;
 6     this.apiurl = apiurl;
 7 };
 8
 9 Area.prototype.render = function(){
10     this.init();
11     console.log(this);
12 };
13 Area.prototype.init = function(){
14     this.addOption(this.province,"请选择省份","");
15     var that = this;
16       //Ajax请求
17       $.getJSON(that.apiurl,{id:0},function(data){
18           //循环加入option
19           for(var i = 0;i < data.length; i++){
20              console.log(data[i]);
21                that.addOption(that.province,data[i][‘name‘],data[i][‘id‘]);
22           }
23       });
24       //监听省份,改变市
25       $("#" + this.province).change(function(){
26           that.delOption(that.city);
27           that.delOption(that.region);
28           that.addOption(that.city,"请选择城市","");
29           that.addOption(that.region,"请选择区域","");
30           var id = $(this).val();
31           $.getJSON(that.apiurl,{id:id},function(data){
32           //循环加入option
33           for(var i=0;i<data.length; i++){
34 //             console.log(data[i]);
35                that.addOption(that.city,data[i][‘name‘],data[i][‘id‘]);
36           }
37       });
38       });
39       //监听市改变区
40       $("#" + this.city).change(function(){
41           that.delOption(that.region);
42           that.addOption(that.region,"请选择区域","");
43           var id = $(this).val();
44           $.getJSON(that.apiurl,{id:id},function(data){
45           //循环加入option
46           for(var i = 0;i < data.length; i++){
47 //             console.log(data[i]);
48                that.addOption(that.region,data[i][‘name‘],data[i][‘id‘]);
49           }
50       });
51       });
52 };
53 Area.prototype.addOption = function(selectId,text,value){
54 //            根据id查找对象,
55             var obj=document.getElementById(selectId);
56 //            添加一个选项
57 //            obj.add(new Option("文本","值")); //这个只能在IE中有效
58             obj.options.add(new Option(text,value)); //这个兼容IE与firefox
59 };
60 //删除option
61 Area.prototype.delOption = function(selectId){
62     var obj=document.getElementById(selectId);
63     obj.options.length = 0 ;
64 }

PHP后台代码:

JSON_UNESCAPED_UNICODE    让json更懂中文

 1 <?php
 2 defined(‘IN_PHPCMS‘) or exit(‘No permission resources.‘);
 3 //获取ID
 4 $parentid = !empty($_GET[‘id‘]) ? intval($_GET[‘id‘]) : "";
 5 if($parentid>=0){
 6     $db = pc_base::load_model(‘area_model‘);
 7     $res = $db->select([
 8         ‘parentid‘ => $parentid
 9     ]);
10     header("Content-type:application/json; charset=utf-8");
11     echo json_encode($res, JSON_UNESCAPED_UNICODE);
12 }  else {
13      exit("参数错误");
14 }
15         

数据哭连接:

 1 <?php
 2 defined(‘IN_PHPCMS‘) or exit(‘No permission resources.‘);
 3 pc_base::load_sys_class(‘model‘, ‘‘, 0);
 4 class area_model extends model {
 5     public $table_name = ‘‘;
 6     public function __construct() {
 7         $this->db_config = pc_base::load_config(‘database‘);
 8         $this->db_setting = ‘default‘;
 9         $this->table_name = ‘area‘;
10         parent::__construct();
11     }
12 }
13 ?>
时间: 2024-10-14 14:55:19

三级联动的相关文章

ajax简介以及用ajax做的三级联动小练习

ajax基本结构: 1 var name = $("#text_1").val(); 2 $.ajax({ 3 url: "Ashxs/Handler.ashx",//一般处理程序路径 4 data: { "name": name },//要传输的数据,冒号前面是键名后面是要传输的数据,如果有多条数据在大括号内用逗号拼接 5 type: "post",//传输方式 6 dataType: "json",//

用DropDownList实现的省市级三级联动

这是一个用DropDownList 实现的省市级三级联动,记录一下········ <asp:ScriptManager ID="ScriptManager1" runat="server">/asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server">                          <Cont

Hibernate+struts+JqueryAjax+jSON实现无刷新三级联动

看网上JqueryAjax三级联动的例子讲不是很全,代码也给的不是很全,给初学者带来一定的难度.小弟自己写了一个,可能有些地方不是很好,希望大家能够提出建议. 用的是Hibernate+struts2写的.http://blog.csdn.net/luckey_zh/article/details/22995389 以代码来说话吧. 首先是index1.jsp页面 [html] view plaincopy <%@ page language="java" import=&quo

层的三级联动

/部门下拉选单绑定数据        function CreateDeptEntity(dataList) {            var select = "#setdept";            jQuery(select).empty();            jQuery(select).append("<OPTION value=0>请选择</OPTION>");            if (dataList != nu

使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能

使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能 要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下拉跟着变化,市级下拉变化时区下拉跟着变化. 使用chinastates表查询 Ajax加载数据 1.这是chinastates表 2.做一个简单php:Ajax_eg.php <!DOCTYPE html><html>    <head>        <meta c

省市三级联动

mumuy-widget-91839b8 http://jquerywidget.com/ /** * jquery.citys.js 1.0 * http://jquerywidget.com */ ;(function (factory) { if (typeof define === "function" && (define.amd || define.cmd) && !jQuery) { // AMD或CMD define([ "jq

2017-5-7 三级联动

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using 三级联动.App_code; namespace 三级联动

WinForm Timer控件,三级联动[省,市,区]

Timer控件: 组件中的最后一个控件,功能是可以根据用户自定义的时间间隔来触发时间,不会印象窗体本身的其他事件进行. 属性: Enable  设置控件是否启用 Interval  设置事件的频率,以毫秒为单位 事件只有一个:Tick事件 例:使用timer控件获取当前时间并即时变动 private void timer1_Tick(object sender, EventArgs e) { label1.Text = DateTime.Now.ToString("yyyy年MM月dd日hh时m

ajax实现省、市、区、三级联动(例题)

题目要求: 要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下拉跟着变化,市级下拉变化时区下拉跟着变化. 使用chinastates表查询 主界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quo