Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jqueryautocomplete w/PHP,远程数据源和类别_Php_Jquery_Jquery Ui_Jquery Ui Autocomplete - Fatal编程技术网

使用jqueryautocomplete w/PHP,远程数据源和类别

使用jqueryautocomplete w/PHP,远程数据源和类别,php,jquery,jquery-ui,jquery-ui-autocomplete,Php,Jquery,Jquery Ui,Jquery Ui Autocomplete,我无法实现的类别功能 这是我的剧本: $( function() { $.widget( "custom.catcomplete", $.ui.autocomplete, { _create: function() { this._super(); this.widget().menu( "option", "items", "> :not(.ui-autocomplete-category)" ); }, _

我无法实现的类别功能

这是我的剧本:

  $( function() {
    $.widget( "custom.catcomplete", $.ui.autocomplete, {
      _create: function() {
        this._super();
        this.widget().menu( "option", "items", "> :not(.ui-autocomplete-category)" );
      },
      _renderMenu: function( ul, items ) {
        var that = this,
          currentCategory = "";
        $.each( items, function( index, item ) {
          var li;
          if ( item.category != currentCategory ) {
            ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
            currentCategory = item.category;
          }
          li = that._renderItemData( ul, item );
          if ( item.category ) {
            li.attr( "aria-label", item.category + " : " + item.label );
          }
        });
      }
    }); 

    $( ".accountIdInput" ).catcomplete({
      delay: 0,
      source: 'autocompleteAccount.php'
    });
  } );
及表格:

<input type="text" id="accountQuery" class="form-control accountIdInput idInput formElement ui-autocomplete-input">
没有结果弹出,但我不确定这是否是因为JSON在返回时是如何被解析的(或者没有被解析的)。我读过关于这个问题的其他文章,但找不到任何有效的解决方案


有什么想法吗?

在JSON结果中,
category
看起来总是“Group”。还有,为什么不直接将
$data
传递回去,为什么要通过
数组_值()
传递呢?它只是剥离了您试图在jQuery中使用的键。您的SQL查询也很容易受到SQL注入的攻击。我建议使用MySQLi编写语句。感谢您指出SQL注入漏洞。关于类别——我现在正在运行一个测试,所以所有的东西都是同一个类别。我在前面使用了array_值来去除键,以匹配jQuery文档中的JSON输出,但您是对的,它看起来不必要。删除它没有帮助,即使它只在.php页面上工作,仍然没有输出。请提供一个php返回的JSON示例。或者将,
console.log(item)
添加到您的
$.each()
以查看它在JS中接收到的内容。在上面添加了一个PHP输出示例。我尝试添加控制台日志,但没有返回任何内容。
<input type="text" id="accountQuery" class="form-control accountIdInput idInput formElement ui-autocomplete-input">
[{"label":"Test Account {12345678901}","category":"Group"},{"label":"* Test Group TEST {1234}","category":"Group"}]