2

所以我试图传递另一个参数“字段”,它可以让我获取正在输入的输入的 id。这将允许我指示 PHP 向数据库发出正确的 SQL 语句,因为我将有多个输入在需要自动完成功能的页面上。我知道下面缺少响应,那是因为我不确定该放什么。我只想像平常一样返回 json 字符串。我怎样才能获得要传递的 id 以及我为响应输入的内容?

('.completeme').autocomplete({    
            source: function(request, response) {
                $.ajax({
                    url: "ajax/ajax_diagnosis.php",
                    datatype: "json",
                    data: {
                        term: request.term,
                        field: $(this).attr("id"),
                        maxRows: 15                     
                }
            },

            minLength: 3,
        });
4

1 回答 1

1

尝试:

$(this.element).attr("id")

这可能是最终脚本:

$(function() {
        var cache = {},
            lastXhr={};
        $( ".completeme" ).autocomplete({
            minLength: 3,
            source: function( request, response ) {

                    var term = request.term,
                        field=$(this.element).attr('id');
                    if(!field)return;
                    if ( cache[field] && term in cache[field] ) {
                        response( cache[field][ term ] );
                        return;
                    }

                $.extend(request,{field:field,maxRows:15});
                lastXhr[field] = $.getJSON( "ajax/ajax_diagnosis.php", 
                                    request, 
                                    function( data, status, xhr ) {
                                    if(!cache[field])cache[field]={};
                                              cache[field][ term ] = data;
                                              if ( xhr === lastXhr[field] ) {
                                                response( data );
                                             }
                                });
            }
        });
    });
于 2012-08-20T08:16:02.777 回答