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

 

 

posted @ 2017-02-14 23:37  趟坑的  阅读(1531)  评论(0编辑  收藏  举报