0

特定のdivにajaxレスポンスを表示するにはどうすればよいですか? このステートメントは機能しましalert(data[i]['title']);たが、div に表示したいです。ありがとう

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

Ajax 関数

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 で新しい div を作成するかどうかによって異なります。

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 に答える