發現網上jquery autocomplete的帖子說的內容都很舊,很多參數不符合Jquery UI中的參數,在這里給出一個Thinkphp和Mysql開發的例子,希望對于大家有幫助,開發環境:jquery 1.7.2,最新版的Jquery UI,thinkphp2.2版本.
另外提一下,autocomplete插件在firefox上有一個輸入BUG,輸入后并不能提示,需要向前空格再退格才有提示,解決方法是,在133行(不同版本可能會有行差)中加入如下代碼:
- .bind("input.autocomplete",function(){
- //修復FF不支持中文bug
- self.search(self.item);
- });
首先模板部分代碼:
1)HTML代碼
- <input type="text" name="shoptuiurl" id="key" class="maintaintextfield">
這里的關鍵是:id="key"
2)JS代碼
- <link href="/Public/Js/Jquery/ui/jquery.ui.autocomplete.css" type="text/css" rel="stylesheet">
- <load href="__PUBLIC__/Js/Jquery/ui/jquery171.min.js" />
- <load href="__PUBLIC__/Js/Jquery/ui/jquery.ui.core.js" />
- <load href="__PUBLIC__/Js/Jquery/ui/jquery.ui.widget.js" />
- <load href="__PUBLIC__/Js/Jquery/ui/jquery.ui.position.js" />
- <load href="__PUBLIC__/Js/Jquery/ui/jquery.ui.autocomplete.js" />
- <script type="text/javascript">
- $(function(){
- $("#key").autocomplete({
- source: "__URL__/searchtuiurl",
- minLength: 1,
- autoFocus: true,
- });
- });
- </script>
這里的關鍵是:對ID為Key的控件,綁定autocomplete方法,并且指出控件的數據源是來自于PHP程序方法
searchtuiurl的返回值(這里的返回值是JSON格式)
3)PHP代碼
- public function searchtuiurl(){
- $Tuiurl=M('Tuiurl');
- $list=$Tuiurl->where(array('qijiandian'=>array('like','%'.trim($_GET['term']).'%')))->select();
- foreach ($list as $value)
- {
- $result[] = array(
- 'label' => $value['qijiandian'],
- 'value' => $value['tuiurl']
- );
- }
- echo json_encode($result);
- } //Jquery UI AutoComplete提供數據用于自動產生推薦URL
這里的注意點比較多,共四條
1)你在輸入框輸入的字,傳入Autocomplete時,格式是$_GET['term'])
2)Lable表示提示出的內容,Value表示選中后,輸入框出現的內容
3)如果你只提供Lable或Value,那么系統就默認Lable和Value的值是一樣的
4)最后返回值要用json_encode編碼.
新聞熱點
疑難解答
圖片精選