php - 自定义 jquery 自动完成结果

标签 php javascript jquery autocomplete

我正在使用带有远程数据源的 jQuery 自动完成功能

    $( "input#searchbar" ).autocomplete({
        source: function( request, response ) {
            $.ajax({type: "post",
            mode: "abort",
            dataType: 'json',
            url: 'index.php/ajax/autosuggest',
            data: { term: $("#searchbar").val()},
            success: function(data) {

                response(data);
            }
        });
    },
    select: function(e, ui) {
        //Refresh pros
        if (map){
            mouseUpOnTheMap();
        }
    }
});

效果非常好。当我键入“a”时,会列出一个以它开头的事件列表(从数据库中获取)。我想做的是在结果中添加一个自定义参数(事件的 ID)。

因为当用户稍后选择事件时,我将不得不“重新执行”sql 搜索以获取事件的 ID...

那么有没有办法在自动完成返回的 JSON 中包含事件 ID?

谢谢

最佳答案

如果您的 index.php/ajax/autosuggest 页面返回一个包含“label”和“value”两个键的 JSON 对象数组(而不是字符串数组),jQuery UI 自动完成插件使用“label” "键显示在自动完成列表中,但实际上为您提供了在选择事件中选择的 JSON 对象。然后就可以引用对象的值了。

$( "input#searchbar" ).autocomplete({
        source: function( request, response ) {
            $.ajax({type: "post",
            mode: "abort",
            dataType: 'json',
            url: 'index.php/ajax/autosuggest',
            data: { term: $("#searchbar").val()},
            success: function(data) {
                //data assumes [{label: "result 1", value: 1}, {label: "result 2", value: 2}];
                response(data);
            }
        });
    },
    select: function(e, ui) {
        var selectedItem = ui.item;
        var id = selectedItem.value;
        var label = selectedItem.label;

        //Refresh pros
        if (map){
            mouseUpOnTheMap();
        }
    }
});

我还没有测试过这个,只是在这里找到的:http://www.petefreitag.com/item/756.cfm

关于php - 自定义 jquery 自动完成结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6236786/

相关文章:

PHP:file_exists 和clearcachestat 给出错误的结果,直到服务器重新启动

php - MySQL获取一组中每x分钟的列的平均值和总和

javascript - 在两个多选字段之间移动选项

javascript - jquery 查找函数

php - 框架和模板引擎有什么区别?

php - mysql 自动增量 id 与 php 生成 id

javascript - 动态创建正则表达式-Javascript

javascript - 如何正确使用 dataLayer.push() 来更新数组中嵌套对象的值?

javascript - Quote Revolver 网站崩溃

jquery - 如何重新初始化 jQuery DataTables 上的数据排序?