JQuery 基于返回主字段的两个数据库字段自动完成

JQuery autocomplate based on two database fields returning the primary one

我有包含字段 namealias 的数据库,我希望自动完成检查这两个字段,而不是 return name 字段的匹配项。到目前为止,我设法让自动完成功能查找 name 字段。这是代码:

$( "#search" ).autocomplete({

              source: function(request, response) {
                  $.ajax({
                  url: "http://example.com/ajax/auto",
                  data: {
                          term : request.term
                   },
                  dataType: "json",
                  success: function(data){
                     var resp = $.map(data,function(obj){
                          return obj.name;
                     });

                     response(resp);
                  }
              });
          },
          minLength: 1,
          open: function() {
              var position = $("#ui-id-1").position();
              var left = position.left;
              var top = position.top;

              $("#ui-id-1").css({top: top - 35 + "px" });

          }
});

问题是如何在代码中实现 alias 字段,以便它可以 return namealias 中找到匹配项。

这就是 http://example.com/ajax/auto 服务器:

{"id":1,"name":"NewYear","alias":"New Year","created_at":"2019-10-30 10:10:18"}

你应该在后端传递这两个字段,并在后端检查 or 条件。

在前端侧代码:

$( "#search" ).autocomplete({

              source: function(request, response) {
                  $.ajax({
                  url: "http://example.com/ajax/auto",
                  data: {
                          name: request.name,
                          alias: request.alias
                   },
                  type: 'post',
                  dataType: "json",
                  success: function(data){
                    //your code
                  }
              });
          },
});

并且如果它是 return 任何数据库查询那么它可能像:

select name from table where name = name_param or alias = alias_param;