Bootstrap的autocomplete插件如何实现基于自定义数据源?

更新于
2026-09-29 08:17:11
2阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计729个文字,预计阅读时间需要3分钟。

Bootstrap的autocomplete插件如何实现基于自定义数据源?

基于Bootstrap插件实现autocomplete自动完成表单,提供脚本代码、示例以及后台服务端(PHP)。

首先确保已加载Bootstrap和jQuery。以下是一个简单的实现示例:

脚本代码

AutoComplete 示例

示例

1. 在输入框中输入Ap,下拉列表将显示Apple。

2.选择Apple,表单中的输入框将自动填充Apple。

后台服务端(PHP)

php

// 这里是模拟的搜索结果数组$products=[ Apple, Banana, Cherry, Date, Elderberry];

Bootstrap的autocomplete插件如何实现基于自定义数据源?

// 搜索关键词匹配结果$results=array_filter($products, function($product) use ($searchKeyword) { return strpos($product, $searchKeyword) !==false;});

// 返回JSON格式的搜索结果header('Content-Type: application/json');echo json_encode($results);?>

确保在服务器上正确配置PHP环境,并在浏览器中通过URL访问此PHP脚本,例如:`http://yourdomain.com/search.php?keyword=Ap`。

基于bootstrap插件实现autocomplete自动完成表单,提供脚本代码,用例,以及后台服务端(php).原文有些没说清楚的地方,希望能帮助大家.
首先肯定还是加载bootstrap&jquery了.
需要额外说明的是,后端返回的二维数组,和formatItem方法下面的调用保持一致即可;
另外,返回的数据要先parseJSON!切记.


相关参数说明:
source:function(query,process){}。query表示当前文本输入框中的字符串,可在该方法中通过ajax向后台请求数据(数组形式的json对象),然后将返回的对象作为process的参数;
formatItem:function(item){}。对返回数据的具体某个json对象转化为字符串格式,用以显示在提示列表中,返回值:字符串;
setValue:function(item){}。选中提示列表某项时,设置文本输入框中显示的值以及实际需要获取的值。返回值格式:{'data-value':item["输入框显示值的item属性"],'real-value':item["实际需要获取值的item属性"]},后期可通过文本输入框的real-value属性获取该值;
items:自动完成提示的最大结果集数量,默认:8;
minLength:当前文本输入框中字符串达到该属性值时才进行匹配处理,默认:1;
delay:指定延时毫秒数后,才正真向后台请求数据,以防止输入过快导致频繁向后台请求,默认:500
具体请参考www.oschina.net/code/snippet_219811_19025

1.[代码][JavaScript]代码

<script> $('#sim_iccid').autocomplete({ source:function(query,process){ var matchCount = this.options.items;//允许返回结果集最大数量 $.get("www.soyiyuan.com/update/",{"iccid":query,"matchCount":matchCount},function(respData){ respData = $.parseJSON(respData);//解析返回的数据 return process(respData); }); }, formatItem:function(item){ return item["iccid"]+"("+item["mobile"]+")"; }, setValue:function(item){ return {'data-value':item["iccid"],'real-value':item["mobile"]}; } }); </script>

2.[代码]$data为一个二维数组

echo json_encode( $data )

3.[代码]需要返回的标准json格式

[{"iccid":"12345678901234567890","mobile":"1850000"},{"iccid":"12345785","mobile":"1850001"}]

本文共计729个文字,预计阅读时间需要3分钟。

Bootstrap的autocomplete插件如何实现基于自定义数据源?

基于Bootstrap插件实现autocomplete自动完成表单,提供脚本代码、示例以及后台服务端(PHP)。

首先确保已加载Bootstrap和jQuery。以下是一个简单的实现示例:

脚本代码

AutoComplete 示例

示例

1. 在输入框中输入Ap,下拉列表将显示Apple。

2.选择Apple,表单中的输入框将自动填充Apple。

后台服务端(PHP)

php

// 这里是模拟的搜索结果数组$products=[ Apple, Banana, Cherry, Date, Elderberry];

Bootstrap的autocomplete插件如何实现基于自定义数据源?

// 搜索关键词匹配结果$results=array_filter($products, function($product) use ($searchKeyword) { return strpos($product, $searchKeyword) !==false;});

// 返回JSON格式的搜索结果header('Content-Type: application/json');echo json_encode($results);?>

确保在服务器上正确配置PHP环境,并在浏览器中通过URL访问此PHP脚本,例如:`http://yourdomain.com/search.php?keyword=Ap`。

基于bootstrap插件实现autocomplete自动完成表单,提供脚本代码,用例,以及后台服务端(php).原文有些没说清楚的地方,希望能帮助大家.
首先肯定还是加载bootstrap&jquery了.
需要额外说明的是,后端返回的二维数组,和formatItem方法下面的调用保持一致即可;
另外,返回的数据要先parseJSON!切记.


相关参数说明:
source:function(query,process){}。query表示当前文本输入框中的字符串,可在该方法中通过ajax向后台请求数据(数组形式的json对象),然后将返回的对象作为process的参数;
formatItem:function(item){}。对返回数据的具体某个json对象转化为字符串格式,用以显示在提示列表中,返回值:字符串;
setValue:function(item){}。选中提示列表某项时,设置文本输入框中显示的值以及实际需要获取的值。返回值格式:{'data-value':item["输入框显示值的item属性"],'real-value':item["实际需要获取值的item属性"]},后期可通过文本输入框的real-value属性获取该值;
items:自动完成提示的最大结果集数量,默认:8;
minLength:当前文本输入框中字符串达到该属性值时才进行匹配处理,默认:1;
delay:指定延时毫秒数后,才正真向后台请求数据,以防止输入过快导致频繁向后台请求,默认:500
具体请参考www.oschina.net/code/snippet_219811_19025

1.[代码][JavaScript]代码

<script> $('#sim_iccid').autocomplete({ source:function(query,process){ var matchCount = this.options.items;//允许返回结果集最大数量 $.get("www.soyiyuan.com/update/",{"iccid":query,"matchCount":matchCount},function(respData){ respData = $.parseJSON(respData);//解析返回的数据 return process(respData); }); }, formatItem:function(item){ return item["iccid"]+"("+item["mobile"]+")"; }, setValue:function(item){ return {'data-value':item["iccid"],'real-value':item["mobile"]}; } }); </script>

2.[代码]$data为一个二维数组

echo json_encode( $data )

3.[代码]需要返回的标准json格式

[{"iccid":"12345678901234567890","mobile":"1850000"},{"iccid":"12345785","mobile":"1850001"}]