2013-05-29 6 views
7

基本的には、djangoで行われたhttp://www.w3schools.com/jquery/jquery_ajax_get_post.aspと同様のものが必要です。サンプルをダウンロードしてlocalhost + phpを使ってローカルでテストしたところ、うまくいきましたが、サンプルがどれほどシンプルであっても、djangoで動作するようには思えません。djangoフォームの簡単な作業用のajaxの例が必要

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#my_form").submit(function(){ 
    $.post("", 
    {name:"Donald Duck", 
    city:"Duckburg"}, 
    function(data,status){ 
     alert("Data: " + data + "\nStatus: " + status); 
    }) 
    .fail(function() { alert("error"); }); 
    return false; 
    }); 
}); 
</script> 

のURL:

url(r'^ajax/$', views.ajax_test, name="ajax"), 

ビュー:

def ajax_test(request): 
    if request.method == 'POST' and request.is_ajax(): 
     name = request.POST['name'] 
     city = request.POST['city'] 
     message = name + ' lives in ' + city 

     return HttpResponse(json.dumps({'message': message})) #tried without the json. Doesn't work either 

    return render(request, 'books/ajaxTest.html') 
ここでは基本的に私はリンクからわずかな修正

JavaScriptを使用して、上記の例に基づいて行われてきたものです

the html:

<form id="my_form" action="" method="post" {% if form.is_multipart %}enctype="multipart/form-data"{% endif %}>{% csrf_token %} 
<input type="submit" value="Send"> 
</form> 

フォームにはdjangoフォームが含まれていると思われますが、基本的な作業を行うことさえできないので、それは無意味です。誰かがcsrf_tokenタグについて言及しましたが、それを削除しても問題は解決しません。上記の例の出力は、基本的にアラート( 'error')を出力し、それ以外は何も出力しません。私は非常に多くの例を経験してきましたが、私は最も基本的なものを手に入れることさえできません。

+0

yo Chrome InspectorまたはFirefox FirebugでAjaxレスポンスを調べると、いくつかのエラーメッセージが表示されるはずです。エラーメッセージが表示されたら、それを修正する方法がわかります。 –

+1

私はDjangoでAjaxを実装するためのチュートリアルをJQueryを使って書いています:https://aliteralmind.wordpress.com/2014/09/21/jquery_django_tutorial/ – aliteralmind

答えて

8

OK..thxあなたのコメント..私はそれをすべて整理しました..basically私は{ %csrf_token%}とcsrfmiddlewaretoken: '{{csrf_token}}' ..ちょうどこの

のようなジャバスクリプトになりますthis..the新しいコードを読み取るかもしれないそれらの利益のために:

<script type="text/javascript"> 
$(document).ready(function(){ 

    $("#my_form").submit(function(){ 
    $.post("", 
    {name:"Donald Duck", 
    city:"Duckburg", 
    csrfmiddlewaretoken:'{{ csrf_token }}' 
    }, 
    function(data,status){ 
     alert("Data: " + data + "\nStatus: " + status); 
    }) 
    .fail(function(xhr) { 
     console.log("Error: " + xhr.statusText); 
     alert("Error: " + xhr.statusText); 
    }); 
    return false; 
    }); 

}); 
</script> 

the html:

<form id="my_form" action="" method="post">{% csrf_token %} 
<input type="submit" value="Send"> 
</form> 
+1

ニース。投稿していただきありがとうございます。 – Paul

関連する問題