这个插件要求回调字符串的格式是什么?(jquery ui multisearch)

What format does this plugin require the callback string to be in? (jquery-ui-multisearch)

本文关键字:是什么 jquery ui multisearch 格式 插件 字符串 回调      更新时间:2023-09-26

我使用的是一个名为"Jquery ui multisearch"的插件,它在输入元素中基于您提供的数组或外部源(ajax/api/etc)提供自动完成功能。在此处找到:http://bseth99.github.io/jquery-ui-multisearch/index.html

我目前正试图使用该插件提供一个基于ajax数据库调用返回的字符串数组的自动完成建议,但我不知道插件希望以什么格式看到它。

以下是插件的初始化示例。

$(function() {
   $("#myMultiSearch").multisearch({
      source: function ( term, callback ) { ... } //A function can implement a data search and should call the passed in callback with the results.
   });
});

下面是我的代码:

$("#search").multisearch({
  source: function (term, callback) {
        $.ajax({
            type: 'POST',
            url: postUrl,
            data: {searchterm:term},
        })
        .done(function(data) { //data == ["abc","abcd","abcde"]; 
            callback(data); 
        });
  });

看起来与他们在这里所做的相似:http://bseth99.github.io/jquery-ui-multisearch/examples/movies.html-看起来像这样:

source: function( term, callback ) {
         movies.search( term ).done( function() { callback( movies.toJSON() ); } );
      },

我还尝试过回调(data.toJSON());或者将输出数据更改为{"abc"、"abcd"、"abcde"}或("abc"、"abcd"、"abc DE")等。所有这些都会导致未定义的结果或出现一个完全没有结果的框。

那么,我如何将返回的项数组传递给multisearch函数,以便它可以在结果中显示它呢?

如果我需要更具体地交流,请告诉我——我知道很难诊断问题,尤其是在第三方插件上,当询问者不太清楚的时候。

我上个月在github上发布了这篇文章,作者在这里回复了我:https://github.com/bseth99/jquery-ui-multisearch/issues/2

我不得不从php中获取数组,并从中创建一个新的哈希数组。

.done(function(data) {
        var jsonparse = JSON.parse(data);
        var hashArray = [];
        jsonparse.forEach(function(entry) {
            hashArray.unshift({name: entry});
        });
        //console.log(hashArray);
        callback(hashArray); //Same format as the line below.
        //callback([{ name: "item1" },{ name: "item2" }]); //This works.
})

谢谢你们的帮助!