【问题标题】:jquery autocomplete, How to populate to the HTMLjquery 自动完成,如何填充到 HTML
【发布时间】:2016-11-03 00:35:03
【问题描述】:

我正在尝试获取 HTML 以显示从我的自动完成 ajax 查询返回的建议。我试图找到这方面的教程,但没有一个真正解释数据如何从 php 发送的 JSON 到 jquery 再到 HTML。

php函数:

function autoCompany($keyword){
global $DBH;


$stmt = "SELECT companyID, companyName FROM Company WHERE companyName LIKE '%' ? '%'";

try{
    $STH = $DBH->prepare($stmt);
    $STH->bindParam(1, $keyword);
    $STH->execute();

    if($STH->RowCount() > 0){

            $suggestions = array(); 
        while($row = $STH->fetch()){
            $suggestions[] = array(
            "label" => $row['companyName'],
            "value" => $row['companyID']
            );
        }

        echo json_encode(array('suggestion' => $suggestions));
    }else{
        echo 'failed';
    }

}catch(Exception $e){
  echo $e->getMessage() . "autoCompany";
}
}

我知道数据发送正确:

suggestion: [{value:Test Company, data:1}, {value:Testing Test, data:4}]
 0: {value:Test Company, data:1}
 1: {value:Testing Test, data:4}

但是如何让数据输出到下拉列表中呢?

我的 HTML:

<div class="form-group">
  <label class="control-label col-md-3 col-sm-3 col-xs-12">AutoComplete</label>
<div class="col-md-6 col-sm-6 col-xs-12">
   <input type="text" name="country" id="autocomplete" class="form-control col-md-10" style="float: left;" />
   <div class="autocomplete-suggestions">
       <div class="autocomplete-suggestion autocomplete-selected">...</div>
       <div class="autocomplete-suggestion">...</div>
       <div class="autocomplete-suggestion">...</div>
   </div>
</div>
</div>

我的自动完成 jquery:

$('#autocomplete').autocomplete({
  serviceUrl: 'Admin/ajax.admin.php',
  paramName: "autoCompany",
  type: "POST",
  dataType: "json",
  onSelect: function (suggestion) {
      alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
  }success: function (data) {
  response($.map(data.d, function (i) {
      return {
          //From Here to DDL?
      }
     }))
  },
 });

【问题讨论】:

  • 您的代码是否正常工作,或者您只需要知道它是如何工作的?
  • 只需要知道如何。我不明白如何从我的 php 返回的JSON 转到divs

标签: php jquery html ajax autocomplete


【解决方案1】:

如果您正在寻找它来填充它自己创建的下拉列表,您需要像这样映射您的 JSON 数据。

response($.map(data.d, function (i) {
      return {
          label: i.value,
          value: i.data
      }
}

【讨论】:

  • 当我尝试这个时没有任何反应。我会得到的是Uncaught TypeError: Cannot read property 'length' of undefined
  • data.d 应该是data.suggestion,如果您需要更多帮助,可以设置一个小提琴
  • 发现了问题。我正在返回suggestion,需要返回suggestions。感谢您的帮助
猜你喜欢
  • 2011-02-01
  • 1970-01-01
  • 2021-04-06
  • 1970-01-01
  • 2015-12-13
  • 2017-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多