2017-02-02 13 views
0

jQuery UIでオートコンプリート検索フィールドを作成しました。私は問題なくコードを使用することができ、それは問題なしでHTMLで結果を生成して表示します。jQuery UIオートコンプリートは、ajax関数ソースの場合に_renderItemを実行しません。

しかし、私はサイトでさらにAJAX機能を使用しており、MySQLへのクエリを実行するためにPHPファイルを分離したくないので、自分のオートコンプリートで2つのデータを送信したいと思います。 1は検索用語そのもの、もう1つはphpでのmy関数の名前なので、適切なクエリを見つけて見つけてデータを返すことができます。

両方のバージョンのコードでは、クロムのネットワークでPOSTが正常に実行されていることがわかりました.Jsonでエンコードされた結果をPHPから取得できます。

ただし、バージョン2では、_renderItemでHTMLを生成しません。

ありがとうございます!

$("#newInit").autocomplete({ 
    source: function(request, response) { 
     $.ajax({ 
      url: "search.php", 
      type: "POST", 
      dataType: "json", 
      data: { 
       term : request.term, 
       f : "item_search" 
      } 
     }); 
    }, 
    minLength: 2, 
    focus: function(event, ui) { 
    $("#newInit").val(ui.item.name); 
    return false; 
    }, 
    select: function(event, ui) { 
    $("#newInit").val(ui.item.name); 
    $("#newInit-id").val(ui.item.item_id); 
    $("#newInit-weight").html(ui.item.weight); 
    $("#newInit-icon").attr("src", "images/" + ui.item.icon); 

    return false; 
    } 
}) 
.autocomplete("instance")._renderItem = function(ul, item) { 
    return $("<li>") 
    .append("<div>Name: " + item.name + "<br>Weight: " + item.weight + "<img width='30' height=30' src='http://url.com/" + item.icon + "'/></div>") 
    .appendTo(ul); 
}; 
+0

(バージョン2)、ajaxからの応答を確認してください。それは本当に名前、重量、アイコンフィールドの項目のリストを送信していますか? – mhshimul

+0

こんにちは、私は適切な応答を次の形式に戻します: [{"item_id": "4"、 "名前": "ツール"、 "重量": "1.00"、 "craftable": "0" "last_mod": "0000-00-00 00:00:00"、 "icon": ""}、{item_id ":" 7 "、" name ":" Wool "、" weight ":" 0.10 " 、 "craftable": "0"、 "last_mod": "0000-00-00 00:00:00"、 "icon": ""}] – Wehaga

答えて

0

ajaxの応答をオートコンプリートソースに渡すajax functonにこれを追加します。

 success: function(data) { 
     if(data) response(data); 
     else response({}); 
     } 
+0

ありがとう、それは問題でした! :) – Wehaga

関連する問題