2013-10-15 64 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