select2 4.0.3 空记录时的处理

使用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');

 

 

转载于:https://www.cnblogs.com/huangju6/p/6399684.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值