これまで、私はdjangoテンプレートシステムを使用してこの種のアクションを実行してきました。htmlテンプレートを使用してajaxリクエストに応答するだけです。
現在、オートコンプリート検索機能を実装しようとしています。json形式で応答をクライアントに送り返したいと思います。
すべてが良好で、この時点までに設定されています。これは私のjQueryの部分です:
$(document).ready(function(){
$("#id_q").keyup(function(){ //the form text input
autocomplete(this.value);
});
function autocomplete(inputString) {
if(inputString.length == 0) {
$('#autocomplete').fadeOut();
}
else {
$.get("/autocomplete/", {q: ""+inputString+""}, function(data) {
$('#autocomplete').fadeIn();
$('#autocomplete').html(data);
});
}
}
});
djangoテンプレートを応答として使用すると、#autocomplete divが.html(data)で期待どおりに表示されました。これは、テンプレートにhtmlを事前に設定していたためです。
サーバーから送信されたデータ(json形式)を処理するにはどうすればよいですか?データは次のようになります。
[{'title':'titleString', 'descr':'desriptionString', 'url':'itemAbsoluteUrl'}, ..]
#autocomplete htmlを取得するには、次のようにします。
<li><a href="data.url">data.title<br>data.descr</li>
フィードバックをありがとう!