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 修改指令,例如“将此 HTML 放入该 div”或其他任何东西,放入您的 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 回答