使用select2插件,如果后台查找没有记录,不能返回null,要返回一个空数组,不然会报错:data is null

空数组形式为(firefox调试输出):{"items":[],"total_count":0}

完整使用记录如下:

前台html标记:

        <div class="form-group  col-md-6">
<label for="supplier">供应商</label>
<select name="supplier" id="supplier" class="form-control" > </select>
</div>

 前台JS

$('#supplier').select2({
theme: "bootstrap",
placeholder: "选择供应商",
allowClear: true,
ajax:{
url:"{:U('Supplier/getvalidSupplier')}",
dataType:"json",
delay:200,
data:function(params){
return {
q:params.term,
page:params.page
}
},
processResults:function(data,params){ params.page = params.page || 1; return {
results: data.items,
pagination: {
more: (params.page * 10) < data.total_count
}
};
},
cache: false
},
//minimumInputLength: 1,
});

  后台PHP TP3.22

public function getvalidSupplier(){
$q=I("q");
$page=intval(I("page"))<1?1:I("page");
$map['supplier|contractor|co_addr'] = array('like','%'.$q.'%');
$map['status']=1;
$pageParas['pageLength']=10;
$pageParas['pageStart']=($page-1)*10;
$pageParas['orderField']='supplier';
$arr = $this->getPageData($map,null,true,null,$pageParas);
$i=0;
$arr2=array();//重点在这里
foreach ($arr as $key => $row) {
$arr2[]=array("id"=>$row[id],"text"=>$row['supplier']);
$i++;
} $this->ajaxReturn(array('items'=>$arr2,"total_count"=>$i)); }

关于初始化设置 selet2

如果是静态的option,按照官网的例子就可以。

即:

$example=$("#example").select2();

$example.val("CA").trigger("change");

如果是动态的(remote)的option,就要自己创建需要初始化的option,然后append

var option=new Option("{$rowdata.supplier_text}","{$rowdata.supplier}",true,true);
$('#supplier').append(option).trigger('change');

 

select2 4.0.3 空记录时的处理的更多相关文章

  1. mysql 8.0.18 手工安装记录

    mysql 8.0.18 手工安装记录 为了日常方便,特记录如下. 一.安装系统依赖包 #.系统依赖包安装 yum -y install make gcc-c++ cmake bison-devel ...

  2. 关于SubSonic3.0查询或更新时出现System.NullReferenceException异常的处理

    在调试程序时,同事发现添加记录时,出现了System.NullReferenceException异常 DictBase dict = new DictBase();    dict.DictCode ...

  3. js简单实现删除记录时的提示效果

    删除记录时的提示效果,挺人性化的,实现的方法有很多,在本文为大家介绍下使用js是如何实现的 样式 复制代码代码如下: <style type="text/css">  ...

  4. 弱类型语言中的0和空字符串(''或"")以及字符串'0'

    在弱类型语言(js/PHP)中, 当我们用==判断0和'0'以及空字符串(''或"")是否相等的时候, 返回的是true. 而且在PHP中, 当我们用==判断0和null是否相等的 ...

  5. Repeater在无数据记录时显示暂无数据

    原文:Repeater在无数据记录时显示暂无数据 方法就是在FooterTemplate加个Label并根据repeater.Items.Count判断是否有记录.关键代码如下: <Footer ...

  6. Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考

    前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3 ...

  7. 使用mybatis注解@Options实现添加记录时返回主键值

    官网:http://www.mybatis.org/mybatis-3/index.html 在使用mybatis作为ORM框架时,我通常更喜欢使用注解而非xml配置文件的方式.业务场景:添加记录之后 ...

  8. manjaro xfce 18.0 踩坑记录

    manjaro xfce 18.0 踩坑记录 1 简介1.1 Manjaro Linux1.2 开发桌面环境2 自动打开 NumLock3 系统快照3.1 安装timeshift3.2 使用times ...

  9. Hadoop-2.2.0集群部署时live nodes数目不对的问题

    关于防火墙,hadoop本身配置都确定没任何问题,集群启动不报错,但打开50070页面,始终live nodes数目不对,于是我尝试/etc/hosts文件配置是否存在逻辑的错误: 127.0.0.1 ...

随机推荐

  1. MySQL中间件Atlas安装及使用

    简介 Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目.它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量 ...

  2. VR全景智慧城市:360全景市场需要背景及其优势~

    VR元年已过,VR项目.VR创业潮转为理性,VR行业分为两个方向:硬件和内容. VR全景,又被称为3D实景,是一种新兴的富媒体技术,其与视频,声音,图片等传统的流媒体大的区别是"可操作,可交 ...

  3. iOS-创建自己的日志系统

    今天说说怎么创建自己的日志系统 先看下Xcode自己的日志(这里说的NSLog) 系统自带的NSLog打印的信息只有简单的 时间 / 项目名称 / 打印内容 内容比较简单, 很难做分类管理和写入文件 ...

  4. 磁盘配额quota

    磁盘配额 1 启用磁盘配额 首先创建新的分区 /dev/sd5,并创建文件系统. [root@local ~]# mkfs.ext4 /dev/sda5 由于xfs 不磁盘配额能成功,这里使用ext4 ...

  5. 扔掉log4j、log4j2,自己动手实现一个多功能日志记录框架,包含文件,数据库日志写入,实测5W+/秒日志文件写入,2W+/秒数据库日志写入,虽然它现在还没有logback那么强大

    讲到log4j,现在国外基本是没有开发者用这个框架了,原因大致有几点,1.功能太少:2.效率低下:3.线程锁bug等等等各种莫名其妙的bug一直都没解决. 其实最重要的是log4j的作者自己也放弃了l ...

  6. eclipse汉化教程,新手神器

    网盘下载地址:http://pan.baidu.com/s/1i5ed6ZF 下载汉化包 将汉化包里的两个文件存放到eclipse安装目录中的dropins文件夹中 重启eclipse 汉化成功

  7. Tomcat7配置管理员帐号密码及权限

    在使用tomcat时,若要使用管理监控功能,需要用用户名密码登录使用,而tomcat7默认是将用户是注释的,所以需要配置后使用, 配置文件为根目录下的/conf/tomcat-users.xml文件. ...

  8. android 下 利用webview实现浏览器功能

    android 下 利用webview实现浏览器功能(一): 1.界面添加WEBVIEW控件. 2.在界面.JAVA代码页面(protected void onCreate(Bundle savedI ...

  9. 前台跨站点获取session

    var sessionId = System.Web.HttpContext.Current.Response.Cookies[System.Web.Security.FormsAuthenticat ...

  10. 前端UI组件复用工具

    "懒"是第一生产力. 代码复用总是程序员喜闻乐见的,前端组件化的最终目的就是复用,今天我们就将深入探讨如何实现UI组件的复用. 通常我们所说的组件往往是包含业务逻辑的前端组件,而这 ...