Web2py ajax
işlevini explained in the book işlevini kullanarak ancak formun bir veritabanında depolanmasını istemediğimden yerine FORM
kullanarak bir form göndermeye çalışıyorum.AJAX aracılığıyla gönderilen bir web2py formu nasıl doğrulanır?
ajax_test.html
{{extend "layout.html"}}
<h2>Form</h2>
{{=form}}
<script>
jQuery("#myform").submit(function() {
ajax("{{=URL('ajax_test')}}",
["mytext"], "output");
return false;
});
</script>
<h2>Output</h2>
<div id="output"></div>
Kontrol içinde default.py:
formu (request.ajax == True
) gönderilen
def ajax_test():
form = FORM(
INPUT(_type="text", _name="mytext", _id="mytext",
requires=IS_NOT_EMPTY()),
INPUT(_type="submit"),
_id="myform"
)
if request.ajax:
if form.accepts(request.vars, session):
return DIV("Form submitted.")
elif form.errors:
return TABLE(*[TR(k, v) for k, v in form.errors.items()])
else:
return DIV("Couldn't check form.")
return dict(form=form)
, hem form.accepts
ve form.errors
dönüş False
. Kullanıcının girişine request.vars.mytext
aracılığıyla erişse de, web2py'nin özelliklerini kullanmak yerine kendi kendime doğrulamam gerekir.
Neyi eksik?
Merhaba Anthony Cevabınız için teşekkürler. İkinci argümanı "#myform" olarak değiştirdim ama aynı sonucu alıyorum. '_formkey' gizli değeri hakkında farkındaydım, ama nedense üretilmiyor. Formun HTML kodu '
. Herhangi bir fikir? – cdontsLütfen güncellenmiş cevaba bakınız. İlk olarak oluşturulduğunda formu işlemeniz gerekir, böylece kod eğer 'request.ajax: 'bloğunda olamaz. – Anthony
Mükemmel! Çok teşekkürler. – cdonts