jQuery自动补全的使用教程—Typeahead

1、先引入 js插件
https://github.com/twitter/typeahead.js
https://github.com/nobleclem/jQuery-MultiSelect

2、实现代码如下(使用Yii框架实现):

  • php—/models/product/_form.php
<div class="form-group field-product-sku" id="searchskuholder">
	<label class="control-label" for="product-sku">Search SKU</label>
	<p>
	<input type="text" id="search-sku" class="typeahead" name="product_sku" placeholder='Search SKU to copy' value=''>
/div>
  • javascript—/models/product/_form.php
var sku = new Bloodhound({
	datumTokenizer: Bloodhound.tokenizers.whitespace,
	queryTokenizer: Bloodhound.tokenizers.whitespace,
	identify: function(obj) { return obj.sku; },
	
	remote: {
		url: "?r=items/searchsku&search=%QUERY",
		wildcard: "%QUERY"
	}
});

$("#searchskuholder .typeahead").typeahead({
		hint: true,
		highlight: true,
		minLength: 1
	},
	{
		name: "sku",
		limit: 80,
		source: sku
	}
);
  • php—controllers/ItemsController.php
public function actionSearchsku()
{
	$searchStr = Yii::$app->request->get('search');
	Yii::$app->response->format = 'json';
	$rc = array();
	
	$rows = (new \yii\db\Query())->select(['id', 'name', 'sku'])
								 ->from('product')
								 ->where(['like', 'sku', $searchStr])
								 ->limit(20)
								 ->all();
	foreach ($rows as $row)
	{
		$rc[] = $row['sku'];
	}
	return $rc;
}

3、效果图如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值