使用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. 泛型(java菜鸟的课堂笔记)

                1. 泛型的简单运 用和意义   2. 泛型的上限与下限   3. 泛型和 子类继承的限制   4. 泛型类和泛型 方法   5. 泛型嵌套和泛型擦除             ...

  2. redis五种数据类型

    string Redis的字符串和其他编程语言或者其他键值存储提供的字符串非常相似. 命令 行为 GET 获取存储在给定键中的值 SET 设置存储在给定键中的值 DEL 删除存储在给定中的值(这个命令 ...

  3. sqlserver 游标写法

    1.简单游标 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 declare m_cursor cursor scroll for select  Address,People ...

  4. 透过源码看看Redis中如何计算QPS

    通常我们采集Redis的性能数据时,或者想要知道Redis当前的性能如何时,需要知道这个实例的QPS数据,那么这个QPS数据是如何计算的呢?我们都有哪些办法或者这个QPS ? QPS顾名思义就是每秒执 ...

  5. 一步一步教你将开源项目上传到jcenter

    最近闲着看了一下jcenter的使用,也想将自己使用频率比较高的东西抽成类库,然后通过compile来使用,提高开发效率,本来以为挺简单的,但是网上介绍的比较模糊,很多博客也比较老了,不适用,花了我一 ...

  6. js动态参数作为Object的属性取值

    js动态参数作为Object的属性取值var myObj = {"a":1,"b":2};var a = 'a';myObj[a] 就可以获取到 属性a的值了

  7. docker 初识之二(简单发布ASP.NET Core 网站)

    在发布ASP.NET Core网站以前,先介绍一下DaoCloud 一个免费的docker云容器服务平台.登陆官方网站,创建一台docker主机,这台主机有120分钟的使用时间,对于鄙人学习使用正好合 ...

  8. php取出数组中的最大值

    <?php /** * @param $arr * @return mixed * php取出数组中的最大值(方法一) */ function getMax($arr){ $max=$arr[0 ...

  9. Lamp单独安装(windows下)

    安装的软件清单:apache_2.2.9-win32-x86-openssl-0.9.8h-r2.msimysql-5.1.28-rc-win32.zipphp-5.2.6-Win32.zipphpM ...

  10. jquery(select)下拉框 选取选中的值

    var get_date_type=$("#date_type").find("option:selected").val(); var get_date_ty ...