2013-10-15 33 views
0

當網站加載時,我想對一個PHP腳本執行一次ajax調用,該腳本返回一個json數據數組(最多200個),並且將它存放在lawnchair中。請參閱http://brian.io/lawnchair/如何在lawnchair中執行類似於「%string%」的JSON搜索

我預先加載數據,不必每次都等待PHP/MySQL回答ajax請求。我想要一個在輸入時返回值的自動完成字段。結果來自lawnchair,所以不再有人打電話給MySQL服務器。

因此,考慮我們有這個數據集:

當用戶鍵入「p」時,需要顯示以上所有內容。當用戶輸入「app」時,只顯示Apple和Pineapple。

因此,我需要用MySQL WHERE LIKE「%string%」等效代碼搜索數據集。我查看了Brian的網站網站,但我發現只有完全匹配的搜索可能與查詢?請參閱:http://brian.io/lawnchair/plugins/

在此先感謝您提供正確方向的任何提示。

回答

1

在(相對貧困)文檔快速瀏覽所暗示的,是下面將工作:

var hits = [], 
    searchExpr = RegExp.escape(searchValue); 

fruitStorage.where('/' + searchExpr + '/i.test(record.name)', function (record) { 
    hits.push(record); 
}); 

// now do something with hits 

不看更深的源代碼,這可能會正常工作。

var hits = [], 
    searchExpr = new RegExp(RegExp.escape(searchValue), "i"); 

fruitStorage.where(
    function (record) { return searchExpr.test(record.name); }, 
    function (record) { hits.push(record); } 
); 

BTW,RegExp.escape()this answer拍攝。

+0

感謝您的回答。我會測試這個! – DelphiLynx

+0

@DelphiLynx And ...?它工作嗎? (我必須承認我沒有測試過它。) – Tomalak

相關問題