使用jquery的autocomplete的方法,進行使用者自定義的顯示列表方法給使用者
最近有個專案,要使用autocomplete,在jquery的UI上面找到了出處,不過有個顯示效果我總是沒法解決。
返回的是一個數組,其中的陣列中的data的內容只是一部分,需要顯示給使用者更多的資訊。比如下拉框的顏色,星級,使用者在
敲擊回車或者單擊的時候,輸出到文字框的是另外的內容,於是就需要在jquery的autocomplete中進行修改。
方法如下:
var caption_value = $('#caption').val(); var ajax_url = '/design_templates/edit_design_namecheck_ajax.php?' + caption_value; $("#caption").autocomplete({ source: ajax_url, focus: function (event, ui) { //$('#caption').val(ui.item.v); return false; }, select: function(event, ui) { //$('#caption').val(ui.item.v); return false; } }) .data( "autocomplete" )._renderItem = function( ul, item ) { return $( "<li></li>" ) .data( "item.autocomplete", item ) .append( "<a style='color:" + item.color + "'>" + item.v + "(" + item.desc + ")" + item.star + "</a>" ) .appendTo( ul ); };
這裡使用了一個方法,就是在li元素中插入<a>元素,其他的元素,比如span,似乎都不可以,可能是因為a這個是link元素,可以支援點選,或者
autocomplete中原生支援。這個.data()的方法,指明瞭是autocomplete元素,_renderItem()是指渲染每條資料,是指使用者返回的資料,我需要進行加工處理,其中ul是整個下拉框,其中的每條資料是一個li元素。
其中li元素中進行了<a>元素的填充。這裡的item是返回的陣列元素的某一條資料。
在PHP中是這樣處理的:
<?php setTemplate('none'); $DB = Database::connect(); $returnArr = array(); if (isset($_GET['term'])) { $sql = "SELECT d.caption, d.design_state_id, c.caption AS cat_caption, c.site_id FROM designs d JOIN avq_categories c ON d.category_id = c.id WHERE d.caption LIKE ".mysql_quote_smart($_GET['term']. '%')." ORDER BY c.site_id, d.caption ASC LIMIT 10"; //echo $sql;exit; $res = $DB->query($sql); $row = mysql_fetch_assoc($res); // echo '<pre style="text-align: left;">'; print_r($row); echo '</pre>'; do { $removed = ''; $coloring = ''; if ($row['site_id'] == 1) $coloring = '#278c16'; if ($row['site_id'] == 2) $coloring = '#176c8c'; if ($row['site_id'] == 3) $coloring = '#5f1719'; if ($row['design_state_id'] == 3) $removed = ' **'; if ($row['design_state_id'] == 2) $removed = ' *'; if ($row['cat_caption'] != '') { //$returnString = '<span style="color:'.$coloring.';">' . $row['caption'] . ' ('. $row['cat_caption'].')'. $removed.'</span>'; //$returnString = $row['caption'] . "(" . $row['cat_caption']. ")" . $removed; $returnString = array('color'=> $coloring, 'v'=>$row['caption'], "desc" => $row['cat_caption'], "star"=>$removed); array_push($returnArr, $returnString); } } while ($row = mysql_fetch_array($res)); //print $returnString; echo json_encode($returnArr); } ?>
直接通過mysql查詢返回的。記住需要是json格式的陣列。
有不正確的地方,敬請留言。
相關推薦
使用jquery的autocomplete的方法,進行使用者自定義的顯示列表方法給使用者
最近有個專案,要使用autocomplete,在jquery的UI上面找到了出處,不過有個顯示效果我總是沒法解決。 返回的是一個數組,其中的陣列中的data的內容只是一部分,需要顯示給使用者更多的資訊。比如下拉框的顏色,星級,使用者在 敲擊回車或者單擊的時候,輸出到文字框的
bar-上下漸變色柱形圖,提示資訊自定義顯示
var x_data1 = ['0', '1', '2', '3', '4', '5', '6']; // 橫座標 var jstr = [5, 6, 40, 100, 58, 99]; //進場資料 var cstr = [36, 11, 22, 69, 115, 196]; //出場資
實現中等難度通訊錄。需求: 1、定義聯絡人類AddressContact。例項變數:姓名(拼音,首字母大寫)、性別、電話號碼、住址、分組名稱、年齡。方法:自定義初始化方法(姓名、電話號碼)、顯示聯絡人
<span style="font-size:24px;">// 1、定義聯絡人類AddressContact。例項變數:姓名(拼音,首字母大寫)、性別、電話號碼、住址、分組名稱、年齡。方法:自定義初始化方法(姓名、電話號碼)、顯示聯絡人資訊 { NS
自定義jquery的方法,將Form表單中的內容轉換成json
// 自定義jquery的方法,將Form表單中的內容轉換成json $.fn.serializeJson=function(){ var serializeObj={}; var array=this
非常實用的自定義佈局,自定義顯示時長的頂部toast
最近在工作中需要彈出頂部toast且顯示時間不固定。從而寫了下面的一個模擬toast的動畫: 先看動畫: public void isShowToast(final boolean isShow,View mToastV) { final int marinTop = 0;//距離頂
Linux下安裝配置 http ,修改本機中http伺服器主頁,自定義顯示內容。
HTTP(Hyper Text Transfer Protocol) 超文字傳輸協議,位於osi模型中的應用層。 安裝:可以使用yum等多種方式安裝,最方便的自然是yum安裝(Redhat需
建立表、修改表、刪除表的方法 ,建立主鍵約束、外來鍵約束、使用者自定義約束的方法 ,建立查詢表的方法及使用截斷表的方法,理解約束在資料庫中的作用
撰寫人——軟工二班——陳喜平 – 實驗內容: – 一、建立表 – 建立圖書館管理系統所涉及的表 – 建立產品銷售系統所涉及的表 – 圖書表book(bid,bname,price,qty) – 書庫表lib(lid,lname,address) – 讀者表reader
自定義在列表頭部新增元素的方法,即insert_head 方法
class Mylist(list): def insert_head(self, n): # 下面這種方法是不可行的,在這個方法中insert_head(2)的結果就是
js自定義右鍵選單,點選自定義選單隱藏、顯示指定div
首先寫好自己想要的右鍵選單的樣子,然後設定該選單div為預設隱藏,滑鼠右擊後設置css顯示該選單(display:block;),並禁用瀏覽器右鍵預設選單。 接下來就可以寫選單中具體項的
對gridview繫結資料的操作方法,自定義顯示內容
GridView中Eval和 Bind 的使用 Eval:繫結的是隻讀資料的顯示;Bind:可以繫結只讀資料也可以繫結更新資料,Bind方法還把欄位和控制元件的繫結屬性聯絡起來,使得 資料控制元件(比如GridView等)的Update、Insert和Delete等方法可以使用這種聯絡來作出
內建函式isinstance,issubclass ,反射,自定義內建方法來定製類的功能,元類
一:內建函式 1,isinstance 判斷某個物件是不是屬於某一型別? class Foo: pass obj=Foo() print(isinstance(obj,Foo))# 在python3中統
定製ListView的介面(使用自定義的列表項佈局,一邊顯示水果圖片,一邊顯示水果文字)以及ListView的點選事件
只能顯示一段文字的ListView實在是太過單調,我們現在就來對ListView的介面進行定製,讓它可以顯示更加豐富的內容。 首先,我們需要準備好一組水果圖片,分別對應上面提供的每一種水果,待會我們要讓這些水果名稱的旁邊都有一個圖樣。 接著定義一個實體類,作為L
統一呼叫微信支付結果通知介面,如何觸發自定義方法或不同的指定方法
統一呼叫微信支付通知如何執行自定義的方法 可以利用attach引數 附加資料 attach 否 String(127) 深圳分店 附加資料,在查詢API和支付通知中原樣返回,可作為自定義引數使用。 官方已經說明這可以當作自定義引數,而且下單填寫的內容會在支付通知中原樣返回 所以在下單
Android 設定Activity全屏顯示,沒有TitleBar;自定義TitleBar
在setContentView(R.layout.main);前加入如下兩行程式碼: getWindow().setFlags(WindowManager.LayoutParam.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG
自己試驗在spring的環繞通知裡獲取目標物件的類名和目標方法的引數類名,用於根據自定義註解判斷訪問許可權,有沒有更好的辦法,高手指點一下
public Object doInBusiness(ProceedingJoinPoint pjp) throws Throwable{ Object[] args = pjp.getArgs(); Class[] argsClass = new Class[ar
url獲取資料介面呼叫方法+自定義顯示(介面回撥)
呼叫方法 new MyTask(new MyTask.Icallbacks(){});//生成返回值myTask.execute("地址");//介面設定 public class MyNetTask
python Json的一點收穫,自定義序列化方法
PyMOTW: json 模組: json 目的: JavaScript物件格式序列器 python版本: 2.6 json模組提供了一個類似於pickle中用於轉換記憶體中python物件為一個序列表示形式(“JavaScript Object Notation”)的A
菜鳥電子面單,自定義區設定方法
菜鳥電子面單列印元件,自定義列印區展示內容 客戶一般要求自定義列印區裡面,展示訂單備貨資訊。 但是官方文件菜鳥列印互動協議裡面介紹的data設定goodsInfo這種方法,經過試驗是沒法使用的。 後來發現由於templateURL可以自己定義。那就自己設定一個url,
IOS控制元件系列----使用UITableView實現網格佈局,自定義顯示列數
先放一引效果圖: 在IOS中達到類似Android中的GridLayout 通常是使用UIConlectionView,這個元件是平果公司已經封裝好的,直接實現相應的介面即可。不知道各位道友是否也曾想過用UItableView來擼一個這個東西,這可能會有一點偏執,但對
樹莓派視窗系統啟動後,自動執行自定義的程式的實現方法
視窗系統啟動後,自動執行自定義的程式的實現方法進入當前使用者HOME目錄下的.config目錄(這是一個隱藏目錄,需用ls -a顯示出來)cd ~/.config 當前使用者是pi, 其HOME目錄是/home/pi, 上述命令相當於 cd /home/pi/.config建