私はAjaxとDjangoの初心者です。質問を単純化するために、私は1つの隠しフォームと2つのオブジェクトを持っていると仮定し、オブジェクトの位置の一部をクリックするようにユーザーに依頼します。各クリックは、フォームの一部を入力します。フォームごとにオブジェクトごとに一度記入したい。そのため全体的に2回。フォームが最初のサブジェクトに塗りつぶされたら、Ajax経由でフォームをサーバーに送信し、ページを更新せずに、フォームを2番目のオブジェクトに再充填することができます。しかし、何らかの理由で私はajax経由で送信されるフォームを取得できません。ここAJAXとDJANGOのフォーム
は私のコードは次のとおりです。 のindex.html:
<html>
<body>
<script src="{{ STATIC_URL }}prototype.js"></script>
<script src="{{ STATIC_URL }}jquery.js"></script>
<script>
objectID= 1;
num_obj = {{num_obj}}
function ajax_post(){
$('#inputform').submit(function() {
$.ajax({
type: 'POST',
url: '/index/',
data: $(this).serialize(),
success: function(data){alert(data)}
}); // end new Ajax.Request
});
}
function onDocumentMouseDown(event) {
....do stuff
if (objectID < num_obj){
ajax_post()
}
if (objectID == num_obj){
$("form").submit();}
objectID ++;
$("form").clearForm();
document.forms[0].ObjectID.value = objectID;
}
</script>
<form action="" method="post" id="inputform">
<div id="ajaxwrapper">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
</div>
</form>
</body>
</html>
私view.py:
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import *
from firstapp.forms import PracForm3
num_obj=2
def index(request):
Obj.objects.all().delete()
if request.method == 'POST':
form = PracForm3(request.POST)
print "\n\n\n\n\n"
if request.is_ajax():
print "yaaaaay AJAX"
print request.POST
else:
print "noooooo"
print "\n\n\n\n\n"
if form.is_valid():
cd = form.cleaned_data
.....
if cd['ObjectID'] == num_obj:
return HttpResponseRedirect('/submit')
else:
form = PracForm3()
dic = {'form': form, 'num_obj': num_obj, ...}
return render_to_response('index.html', dic, context_instance=RequestContext(request))
私urls.py:
from django.conf.urls import patterns, include, url
from firstapp.views import index, submit
from django.conf import settings
urlpatterns = patterns('',
('^index$', index),
('^submit$', submit),
)
何らかの理由で、私のAjaxは私が間違っていることを知っている人はいませんか?
問題について詳しく説明できますか?ブラウザのデベロッパーコンソール(Chromeをお勧めします)を使用して、表示されているエラーやリクエストを貼り付けることができます。 –
私はエラーやリクエストを見ません。アヤックスが投稿しているかどうかわからない – user1871528
あなたはCSRFを説明していますか? – esse