0

検索機能に jquery keyup 関数を使用しています。検索した連絡先をテンプレートで表示していました。私のビューは次のとおりです。

def contacts_profile(request, search_id=None):
    contact = Invitation.objects.filter(send_visitid = request.user.username, accept_status = True,from_user__username__icontains = search_id)
    results = [ x.from_user.username for x in contact ]
    json = simplejson.dumps(results)
    return HttpResponse(json, mimetype='application/javascript')

私のdjangoテンプレートは次のとおりです:

<div id="contact_image">
    {% for contact in contacts %}
        {% if contact.from_user.image  %}
            <img src="/site_media/{{contact.from_user.image}}" id="{{contact.from_user.id}}" onclick="profile(this.id)" alt="" style="border-radius: 10px 10px 10px 10px; width:50px; height:50px;"/>{{contact}}<br><br>
        {% else %}
            <img src="/site_media/img/contact-img.png" alt="" />{{contact}}<br><br>
        {% endif %}
    {% endfor %}
    </div>

<div><input type="text" class="form-text" name="search_field" id="id_search_field" placeholder="Search Contacts here" />

このテンプレートで検索された連絡先をajaxで次のように表示するのを手伝ってください。

$("#id_search_field").keyup(function () {
        var a =($('#id_search_field').val());
        alert(a);
        var html_str = ""
        $.ajax({
            "type"      : "GET",
            "url"       : "/profile_information/contacts_profile/" +a+ "/",
            "dataType"  : "json",
            "cache"     : false,
            "success"   : function(json) {
                alert(json)
                    }
                });     
         }); 

テンプレートでjson値を表示するのを手伝ってください。

4

2 に答える 2

0

Dajaxice / Dajaxを使用します。それがどのように機能するかについては、ドキュメント(およびここでの私の回答)を参照してください。基本的に、(1) AJAX 呼び出しをよりシームレスにするためのラッパーと、(2) 「この HTML をその div に入れる」などの HTML 変更命令を簡単にプログラムできるようにするためのラッパーの両方を AJAX 応答に取得します。

于 2012-09-03T12:19:53.953 に答える
0

さて、あなたのjquery ajaxには少し欠陥があると思います:代わりに:

$.ajax({
   "type"      : "GET",
   "url"       : "/profile_information/contacts_profile/" +a+ "/",
   "dataType"  : "json",
   "cache"     : false,
   "success"   : function(json) {
        alert(json)
    }
});     

使用する:

$.ajax({
   type      : "GET",
   url       : "/profile_information/contacts_profile/" +a+ "/",
   dataType  : "json",
   cache     : false,
   success   : function(json) {
        //see below for the json object
    }
});   

次に、実際に応答オブジェクトを json に変換するには、次のようにします。

json = eval(json);

そうすれば、json.<property> 呼び出しを持つことができます

于 2012-09-03T14:21:10.920 に答える