公共函数放置位置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中省市级联下拉列表的更多相关文章

  1. javascript中的省市级联效果

    学习javascript的时候都遇到过这样的需求,不仅是省市,还有其他的一些场景,看看关键的代码有哪些吧. <head runat="server"> <titl ...

  2. 省市级联.net

    初学javascript,编译省市级联,使用json在一般处理程序中编译,利用ajax传递数据到web前台 <html xmlns="http://www.w3.org/1999/xh ...

  3. JavaScript实现省市级联效果实例

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  4. 转:『代码』JS封装 Ajax级联下拉列表

    在博客园看到一篇不错的AJAX级联下拉列表,觉得不错,特地拿下来 :转载来自:『大雪无痕』 ,原文地址 //当一个 下拉列表 改变时,触发所有联动:(警告:各下拉列表之间 请不要出现 循环依赖) // ...

  5. 全国省市级联数据sql语句 mysql版

    全国省市级联数据sql语句 mysql版 --省级 provincial create table provincial ( provincialID int, provincialName ), p ...

  6. 原生js实现级联下拉列表

    <!DOCTYPE> <html> <head> <title>级联下拉列表</title> <meta charset=" ...

  7. js省市级联实现

    js省市级联实现. for [element] in [collection] 用于循环下标,常用于json for(index in arr){ console.info("下标:&quo ...

  8. 纯js实现省市级联效果

    我们都知道一般有注册的时候会让用户填入省市啊地区什么的,然后我就想使用纯js制作一个省市级联的效果,只是用于学习以及回顾温习用,首先看下效果图,界面很丑啊,不要嫌弃! 首先还是先看下我的项目目录吧 很 ...

  9. 使用Vue-TreeSelect组件实现公司-部门-人员级联下拉列表的处理

    最近在改造原有Bootstrap开发框架,增加一个Vue&Element前端的时候,发现需要处理一个级联更新的过程,就是选择公司,然后更新部门,选择部门,或者人员列表,选择作为主管的一个实现, ...

随机推荐

  1. R语言学习网站

    一个不错的个人R语言博客网站 http://blog.fens.me/r-overview/

  2. activiti 5.17 流程图中文乱码问题

    1. 流程图中任务中的中文乱码显示问题.   解决方法:设置processEngineConfiguration中的两个字体属性,例如: <bean id="processEngine ...

  3. #if defined 的意思?

    在读s3c2440a的test程序,其中option.h文件中有段语句为: #define LCD_N35 //#define LCD_L80 //#define LCD_T35 //#define ...

  4. 目测ZIP的压缩率

    对word文件,能压到25% 对PDF文件,却只有90% 对压缩文件本身再压缩,几乎没有效果. 考虑到用户一般情况下只有正常的文档,取中位值66%是比较正常的情况,特别是在预估原文件大小的时候.

  5. 绝美Sysinternals

    啥也不说了,自己看吧: https://technet.microsoft.com/en-us/sysinternals/bb545046 新地址: https://technet.microsoft ...

  6. Spring中Bean的命名问题及ref和idref之间的区别

    一直在用Spring,其实对其了解甚少,刚去了解了一下Spring中Bean的命名问题以及ref和idref之间的区别,略作记录,以备后查. Spring中Bean的命名 1.每个Bean可以有一个i ...

  7. Linux企业级项目实践之网络爬虫(12)——处理HTTP应答头

    Web服务器的HTTP应答一般由以下几项构成:一个状态行,一个或多个应答头,一个空行,内容文档.设置HTTP应答头往往和设置状态行中的状态代码结合起来.例如,有好几个表示"文档位置已经改变& ...

  8. MVC4.0 Controller和View重复加载

    项目完成以后总是感觉有一些页面跑起来特别的慢,就仔细的调试了下,发现有很多也买年都是走了两遍,页面加载的时候Controller和View会连续走了两次,没有一点缘由 查了很久也不知道什么原因,这个问 ...

  9. windows对象总结

    这篇文章是对windows对象的总结,在winows编程中,windows对象,句柄是一个基本概念,理解这些概念有助于后面的windows编程学习.文章的形式还是以解答问题的方式来组织. 注:在文中, ...

  10. hdu1573:数论,线性同余方程组

    题目大意: 给定一个N ,m 找到小于N的  对于i=1....m,满足  x mod ai=bi  的 x 的数量. 分析 先求出 同余方程组 的最小解x0,然后 每增加lcm(a1...,am)都 ...