J'essaie de comprendre comment les appels Django + Jquery et Ajax fonctionnent ensemble.Django: Quel est le problème avec mon expérience ajax simple?
C'est simplement un simple/test/url qui montre un seul formulaire d'entrée, une fois soumis récupère la réponse du serveur via ajax.
Pour que j'ai écrit une très petite:
def test(request):
if request.is_ajax():
from django.http import HttpResponse
post_text = request.POST.get("post_data")
return HttpResponse("{'response_text': '"+post_text+" recieved.'}", mimetype="application/json")
else:
return render_to_response('test.html', {},context_instance =RequestContext(request))
Et je l'ai écrit cette règle URL pour mon URLPATTERN au urls.py:
(r'^test/$', 'myapp.views.test'),
Et voici mon test. modèle html:
<html>
<head><title>template</title></head>
<script type="text/javascript" src="/media/js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#post_form').submit(function(event){
event.preventDefault(); // cancel the default action
var form = this;
var data = {}
data.post_data = $(form).find('input[@name=our_text]').val();
$.post("/test/",
data,
function(responseData) {
alert(responseData.response_text);
},
"json"
);
});
});
</script>
<body>
<form id="post_form" method="post">
INPUT: <input type="text" name="our_text" />
<input type="submit" value="Add" />
</form>
</body>
</html>
Il ne semble pas faire une réponse sur mon www.mysite.com/test/ une fois que je remplis le champ de saisie et s ubmit. Quel peut être le problème?
Votre vue est appelée? Est-ce que vos données POST sont celles que vous attendez d'elles? Aussi, je recommanderais d'utiliser le module json pour gérer l'encodage vers json. –
Est-ce que Firebug montre une erreur de quelque sorte? –