jquery的自动完成autocomplete插件用法


      今天来介绍一个基于jquery的轻量级自动完成插件--autocomplete


前端代码如下:

  <tr>
      <th width="80">柜子编号:</th>
      <td>
          <input type="text" name="sark_number" value="" οnfοcus="do_autocomplete(this);"/>
      </td>
  </tr>

前端js部分:

    /**
     * 自动提供柜子编号信息
     * 2016.11.14
     **/
    function do_autocomplete(obj) {
        var sark_number = $(obj).val();
        $(obj).autocomplete({
            autoFocus: true,
            minLength: 0,
            autoFill: true,
            source: 'Transitwms/Transport/search_sark_number?sark_number='+sark_number,
            select: function (event, ui) {
                $(obj).val(ui.item.sark_number);
                $(obj).attr("readonly", "readonly");
            }
        });
    }
控制器层:

    /**
     * 查询相似的柜子编号
     * khq 2016.11.14
     */
    public function search_sark_number(){
        $sark_number = mysql_escape_string($_GET['term']);
        $sark_numbers = D('transport','Model')->get_transport_field(
            'sark_number',"sark_number like '%".$sark_number."%'");     //模糊查到柜子编号二维数组
        $sark_numbers = D('transport','Service')
            ->array_unique_fb($sark_numbers);                           //二维数组去重
        $re[]=array();
        if($sark_numbers){
            foreach($sark_numbers as $key => $val){
                $re[]               = array(
                    'label'         => $val[0],
                    'sark_number'   => $val[0]
                );
            }
        }
        echo json_encode($re);
        exit;
    }
附带上Service层的二维数组去重方法:

    /**
     * @param $array2D -需要过滤的二维数组
     * @return array   -过滤后的二维数组
     * 二维数组去掉重复值
     * 2016.11.14
     */
    function array_unique_fb($array2D){
        foreach ($array2D as $v){
            $v=implode(',',$v);                                  //降维,将一维数组转换为用逗号连接的字符串
            $temp[]=$v;
        }
        $temp=array_unique($temp);                               //去掉重复的字符串,也就是重复的一维数组
        foreach ($temp as $k => $v){
            $temp[$k]=explode(',',$v);                           //再将拆开的数组重新组装
        }
        return $temp;
    }
 界面效果图:

            


 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值