0

如何在特定 div 上显示 ajax 响应?此语句有效alert(data[i]['title']);,但我想在 div 上显示。谢谢

<td><a onclick="ajax_request('{% url recommendation id=track.id %}');" href="#"> Click Here</a></td> 

阿贾克斯函数

function ajax_request(url) {
    $.ajax({
        url: url,
        type: 'POST',
        data: {csrfmiddlewaretoken: '{{ csrf_token }}'},
        success: function(data) {
                for(i=0;i<=data.length;i++){
                    alert(data[i]['title']); 
               }
            }
    })
}

看法

@login_required
def recommendation(request, id):
    if request.is_ajax() and request.method == 'POST':
        track = Track.objects.get(pk=id)
        recommend = Song.objects.filter(title__icontains=track.title)[:5]
        results = []
        for data in recommend:
            results.append({'title': data.title})
        json = simplejson.dumps(results)
        return HttpResponse(json, mimetype="application/json")
4

2 回答 2

0

嗯,这取决于您是否已经有一个要在其中显示内容的 div 或者您使用 jQuery 创建一个新的:

现有一个 id myDiv

$('#myDiv').html(data[i]['title']);  //also $('#myDiv').text(data[i]['title']) possible

创建新的div:

$('<div/>').html((data[i]['title']);
于 2012-08-08T08:26:31.610 回答
0

您需要像这样修改您的 onsuccess 事件

 $.ajax({
            url: url,
            type: 'POST',
            data: {csrfmiddlewaretoken: '{{ csrf_token }}'},
            success: function(data) {
               for(i=0;i<=data.length;i++)
               $('#div').html(data[i]['title']);//Your success msg

                }
        });
于 2012-08-08T08:36:06.123 回答