thinkPHP中省市级联下拉列表
公共函数放置位置common文件夹下common.php文件(此段代码也可放置在要使用的控制器中)
封装的下拉列表函数代码:
/**
* 根据列表拼装成一个下拉列表 ADD BY CK
* @param $list :数据源
* @param $value :显示的option的value值,下标 例:$list['id']中的id
* @param $text :显示的option的text值 例:$list['name']中的name
* @param int $selectIndex : 选中的索引项
* @param bool $haveFirst:是否有第一项如'<option value="0">请选择</option>',默认为false
* @return bool|string
*/
function getSelectOption($list,$value,$text,$selectIndex = 0,$haveFirst=false)
{ if(!is_array($list) )
{
return false;
}
if(!isset($list)||!isset($value)||!isset($text))
{
return false;
}
if(empty($list)||empty($value)||empty($text))
{
return false;
}
if(!$haveFirst)//如果有第一项则不添加
{
$resultStr='<option value="0">请选择</option>';
}
foreach($list as $option)
{
if($option[$value] == $selectIndex ){
$resultStr .= '<option value='.$option[$value].' selected="selected">'.$option[$text].'</option>';
}else
{
$resultStr .= '<option value='.$option[$value].'>'.$option[$text].'</option>';
}
}
return $resultStr;
}
Exchange控制器代码:
public function index(){
$this->assign('option', array('prov' => $this->getRegion(0))); //页面初始化获取省份。
$this->display();
}
/**
* 获取省市
* @param type $pid
* @param type $ajax 是否ajax调用
* @return type array
*/
public function getRegion($pid = 0, $ajax = false, $checked = 0, $prvcheck = false) {
$r = D("Region")->where("parentid=" . $pid)->select(); //Region省市级联表,parentid父亲级id,pid自增id
if ($ajax) {
$this->ajaxReturn(getSelectOption($r, 'id', 'name'));
} else {
if ($prvcheck) {
$prvid = D("Region")->query("SELECT id from hengtu_region where id=(SELECT parentid from hengtu_region where parentid=(SELECT parentid from hengtu_region where id=" . $pid . ") limit 1)");
return getSelectOption(D("Region")->where("parentid=0")->select(), 'id', 'name', $prvid[0]['id']);
}
return getSelectOption($r, 'id', 'name', $checked);
}
}
在index页面要显示省市级联的位置:
<font style="font-size:12px;">地区选择:</font>
<select id="addarea_sheng" name='cityid';>
{$option.prov}
</select>
<select id="addarea_shi" name='cityid' style="display:none;" > </select>
<select id="addarea_quxian" name='cityid' style="display:none;" > </select>
<script>
$("#addarea_sheng").change(function() {
var provid = $("#addarea_sheng").val();
$.get("{:U('Exchange/getRegion')}?pid=" + provid + "&ajax=1", function(data) {
$("#addarea_shi").show(0, function() {
$(this).html(data);
});
})
}) $("#addarea_shi").change(function() {
var provid = $("#addarea_shi").val();
$.get("{:U('Exchange/getRegion')}?pid=" + provid + "&ajax=1", function(data) {
$("#addarea_quxian").show(0, function() {
$(this).html(data);
});
})
})
</script>
thinkPHP中省市级联下拉列表的更多相关文章
- javascript中的省市级联效果
学习javascript的时候都遇到过这样的需求,不仅是省市,还有其他的一些场景,看看关键的代码有哪些吧. <head runat="server"> <titl ...
- 省市级联.net
初学javascript,编译省市级联,使用json在一般处理程序中编译,利用ajax传递数据到web前台 <html xmlns="http://www.w3.org/1999/xh ...
- JavaScript实现省市级联效果实例
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 转:『代码』JS封装 Ajax级联下拉列表
在博客园看到一篇不错的AJAX级联下拉列表,觉得不错,特地拿下来 :转载来自:『大雪无痕』 ,原文地址 //当一个 下拉列表 改变时,触发所有联动:(警告:各下拉列表之间 请不要出现 循环依赖) // ...
- 全国省市级联数据sql语句 mysql版
全国省市级联数据sql语句 mysql版 --省级 provincial create table provincial ( provincialID int, provincialName ), p ...
- 原生js实现级联下拉列表
<!DOCTYPE> <html> <head> <title>级联下拉列表</title> <meta charset=" ...
- js省市级联实现
js省市级联实现. for [element] in [collection] 用于循环下标,常用于json for(index in arr){ console.info("下标:&quo ...
- 纯js实现省市级联效果
我们都知道一般有注册的时候会让用户填入省市啊地区什么的,然后我就想使用纯js制作一个省市级联的效果,只是用于学习以及回顾温习用,首先看下效果图,界面很丑啊,不要嫌弃! 首先还是先看下我的项目目录吧 很 ...
- 使用Vue-TreeSelect组件实现公司-部门-人员级联下拉列表的处理
最近在改造原有Bootstrap开发框架,增加一个Vue&Element前端的时候,发现需要处理一个级联更新的过程,就是选择公司,然后更新部门,选择部门,或者人员列表,选择作为主管的一个实现, ...
随机推荐
- python学习第十五天 -面向对象之继承和多态
大家都知道面向对象的三大特性:封装,继承,多态.封装特性在上一章节已经讲解过.这一章节主要讲解继承和多态. 继承: 当定义一个类的时候,可以从现有的类进行继承.那么新定义的类可以称为子类,被继承的现有 ...
- 国威电话机WS824(5D)-3型调试文档--可以转行啦
多了一万多搞的机器,花了我和同事们两三个晚上,最近还要打技术支持得到的经验... 可以转行作弱电啦啦~~~) 一,外线分组调试: 默认设置为所有内线端口可用1,2,13,14,15,16打出.(16个 ...
- 异曲同工的AWK语句,学习
输出每个IP的网络连接数,是作很多事情的第一步: netstat -nat | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n ne ...
- 程序错误[C/C++]
对于初学者而言,一般意义上,程序错误可以分为两类,逻辑错误和非逻辑错误.前者是指,程序可以通过编译或链接但运行时不符合预期结果,后者是程序不能通过编译或链接. 乍一看这样的分类非常清楚.不过,当引入语 ...
- 2015必须要看的APP源码
多媒体类型 哔哩哔哩(bilibili)客户端源码 一个高仿哔哩哔哩(bilibili)客户端的开源项目,效果不错 下载地址: http://www.apkbus.com/forum.php?mod= ...
- C++基础回顾2(函数, 指针和引用)
接着回顾函数.指针和应用. 函数 1.多维数组作为形参时,第一维的大小可以省略(也可以不省略),但是其他维的大小必须指定.比如二维数组形参,int array[3][]不正确,int arry[][1 ...
- php字符串常用处理函数(数组的拆分、查找替换)
//字符串常用函数 $a = "hello"; echo strlen($a); //输出字符串的长度 $b = "Hello"; ...
- laravel-模板引擎Blade
(慕课网_轻松学会Laravel-基础篇_天秤vs永恒老师) 一.概述 Blade是Laravel提供的一个既简单又强大的模板引擎 和其他流行的PHP模板引擎不一样,Blade并不限制你在视图view ...
- [Oracle] 使用触发器实现IP限制用户登录
在Oracle里,不像MySQL那样方便,可以直接在用户上进行IP限制,Oracle要实现用户级别的IP限制,可以使用触发器来迂回实现,下面是一个触发器的例子: create or replace t ...
- Hacker(20)----手动修复Windows系统漏洞
Win7系统中存在漏洞时,用户需要采用各种办法来修复系统中存在的漏洞,既可以使用Windows Update修复,也可使用360安全卫士来修复. 一.使用Windows Update修复系统漏洞 Wi ...