Wordpress使用suggest.js来帮助自动完成查询,我正在使用它。
然而,当我的php查找返回一个数组时,我不希望该字段显示为json_encoded数据。据我所知,在suggest.js中没有简单的方法来拦截 displayItems javascript函数,这样它就会首先解析返回的数据并只显示某些字段。
我的scripts.js中的函数如下:
./configure -platform win32-g++ -xplatform linux-arm-gnueabihf-g++ .....
fetch_ajax_products_list 是一个php函数,它返回一个带有三个元素(id,title和guid)的json_encoded数组,它正确地传递为 this.value 。我只想显示标题,但选中后,字段将更新以显示guid。复杂的是标题可以复制,因此如果没有id字段,则无法基于选择创建新的SQL查询。
我没有看到任何改变建议返回数据方式的方法,所以我猜它需要被覆盖。
Google没有为suggest.js提供太多帮助。
我希望这是有道理的,任何帮助都会非常感激。
谢谢。
答案 0 :(得分:1)
一种解决方案是修改wp-inludes/js/jquery/suggest.js
以接受选项filter
。
options.filter = options.filter || function(txt) {
return txt;
}
然后通过过滤器传递响应。
items = parseTxt(options.filter(txt), q);
设置
$("#producturl").suggest(ajaxurl + "?action=fetch_ajax_products_list" ,
{
delay: 50,
minchars: 1,
filter: function(response) {
// JSON.parse, etc.
},
onSelect: function() {
do_something(this.value);
}
});