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

标签 javascript jquery ajax jquery-ui

我正在使用一个名为“Jquery-ui-multisearch”的插件,它根据您提供的数组或外部源(ajax/api/等)在输入元素中提供自动完成功能。在这里找到: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() ); } );
      },

我也试过 callback(data.toJSON());或将输出数据更改为 {"abc","abcd","abcde"} 或 ("abc","abcd","abcde") 等。所有这些都会导致未定义的结果或出现一个框没有任何结果。

那么如何将返回的项目数组传递给 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.

})

谢谢大家的帮助!

关于javascript - 这个插件要求回调字符串是什么格式? (jquery-ui-multisearch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34277406/

相关文章:

javascript - 在等待 curl_exec 获取响应时显示 Gif

javascript - Vue.js:监视对象的动态更改

jquery - 如何更改asp.net中type属性的值?

javascript - 如果参数不在 AJAX 调用期间,则包含 NULL 条目

javascript - 在 Canvas 上移动对象

javascript - 如何使用javascript访问隐藏按钮

jquery - 使用 FitText jquery 插件调整文本大小

javascript - jquery 将日期转换为格式化日期

php - 需要帮助更改代码以成功上传文件,并取消文件上传

php - json_encode 来自数据库的数据数组