2016-06-30 11 views
1

私はオートコンプリートajaxクエリから返された提案をHTMLで表示しようとしています。私はこれのためのチュートリアルを見つけようとしましたが、実際にはどのようにデータがJSONからphpによってjqueryに送られ、次にHTMLに送られるかを説明していません。jquery autocomplete、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の:それはそれはあなたがそうのようなあなたのJSONデータをマップする必要が独自に作成し、ドロップダウンを移入するためにあなたの領域が

$('#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? 
     } 
    })) 
    }, 
}); 
+0

あなたのコードは機能しているか、それがどのように機能するかを知る必要がありますか? – Hackerman

+0

ちょうど方法を知る必要があります。私のPHPが 'divs'に返す' JSON'からどうやって行くのか分かりません。 – WorkHardWork

答えて

0

を探している場合。

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

私はこれを試しても何も起こりません。 'Uncaught TypeError:未定義の 'length'プロパティを読み取ることができません。 – WorkHardWork

+0

' data.d'はおそらく 'data.suggestion'でなければなりません。もしあなたが助けを必要とする場合は、 – cmorrissey

+0

が見つかりました。私は「提案」を返していて、「提案」を返す必要があった。ご協力ありがとうございました – WorkHardWork

関連する問題