Sono un principiante sia per Ajax che per Django. Per semplificare la domanda presumo di avere un modulo nascosto e due oggetti, e chiedo agli utenti di fare clic su parte della posizione degli oggetti. Ogni clic riempie una parte del modulo. Voglio che il modulo sia compilato una volta per ogni oggetto. quindi due volte in generale. Quando il modulo è compilato per il primo oggetto, desidero inviare il modulo tramite Ajax al server, senza aggiornare la pagina e consentire al modulo di essere ricaricato per il secondo oggetto. Tuttavia, per qualche motivo non riesco a far inviare il modulo tramite ajax.Modulo AJAX e DJANGO
Ecco il mio codice: 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>
mia 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))
mia 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),
)
per qualche ragione, il mio Ajax non funziona nessuno sa cosa sto sbagliando?
Potete fornire maggiori dettagli in merito? Puoi utilizzare la console per gli sviluppatori di un browser (ti consiglio Chrome) e incollare eventuali errori o richieste che vedi. –
Non vedo errori o richieste. Non sono sicuro che l'ajax pubblichi nulla – user1871528
Stai tenendo conto di CSRF? – esse