Re: how to return ajax info in one case, and redirect to a different url in another?
Yes, that was going to be my fallback if I couldn't get the server validation to work. I just find it so much more maintainable to do the validation in python/django. Anyway, did finally get it working, thanks! Margie On Sep 15, 5:18 am, justind wrote: > Could you just do validation in the view, then when you get the > response, if there are no errors, submit the form with javascript > (form.submit()), handle it in the view and redirect? > > On Sep 15, 3:07 am, Margie Roginski wrote: > > > I have a situation where the user fills in a form and hits submit to > > post the form. If my views.py code detects an error in the form, I > > want to return some info to the client and put it into the dom via > > jquery. If there is no error, I want to redirect to another page. > > Can anyone advise me on the best way to do this? I've succesfully > > used $.post() to grab the error info and put it in the dom. However, > > in the case where there is no error, I can't figure out how to do the > > redirect. > > > I've tried having the views.py code pass back the url that I want to > > redirect to, and then when my $.post() callback function is called, it > > sets window.location to that url. But this seems to have some issues > > when the url contains an anchor (for some reason firefox seems to > > cache anchored urls and not redirect to them in the normal way). > > > Is there any way to specify that even though $.post() started the > > server request, that the server should just redirect to a url (ie, > > using just the basic HttpResponseRedirect() or something like that) > > and not return and call the $.post callback function? > > > Thanks for any pointers, > > > Margie > > --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~--~~~~--~~--~--~---
Re: how to return ajax info in one case, and redirect to a different url in another?
Thanks for the pointers! I finally got it to work. I had been doing similar to your suggestion (returning ajax response like ["redirect_to": "http://www.example.com";], but I had been having issues with setting the location and wasn't sure if that was the right thing to be doing. For some reason when I had a url that had a / before an anchor, ie http://www.example.com/#comment_32, it wasn't redirecting correctly and that was throwing me off. Maybe that's not even legal and just happens to work when I type it in. Anyway, once I got rid of the '/' before the anchor (www.example.com#comment_32) and used document.location = url that did the trick. Thanks very much for your comments, that was a big help. Margie On Sep 15, 6:41 am, Alex Robbins wrote: > Making the browser switch pages isn't too bad. Just set > document.location to the new url using javascript. (The document > object should be provided by the browser.) > Maybe you should check the headers of the ajax response and if it is a > redirect make the redirect happen using javascript? Or simply make one > of the ajax responses be {"redirect_to": "http://www.example.com/"} > and parse it out on the client side. > > Hope that helps, > Alex > > On Sep 15, 2:07 am, Margie Roginski wrote: > > > I have a situation where the user fills in a form and hits submit to > > post the form. If my views.py code detects an error in the form, I > > want to return some info to the client and put it into the dom via > > jquery. If there is no error, I want to redirect to another page. > > Can anyone advise me on the best way to do this? I've succesfully > > used $.post() to grab the error info and put it in the dom. However, > > in the case where there is no error, I can't figure out how to do the > > redirect. > > > I've tried having the views.py code pass back the url that I want to > > redirect to, and then when my $.post() callback function is called, it > > sets window.location to that url. But this seems to have some issues > > when the url contains an anchor (for some reason firefox seems to > > cache anchored urls and not redirect to them in the normal way). > > > Is there any way to specify that even though $.post() started the > > server request, that the server should just redirect to a url (ie, > > using just the basic HttpResponseRedirect() or something like that) > > and not return and call the $.post callback function? > > > Thanks for any pointers, > > > Margie > > --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~--~~~~--~~--~--~---
Re: how to return ajax info in one case, and redirect to a different url in another?
Making the browser switch pages isn't too bad. Just set document.location to the new url using javascript. (The document object should be provided by the browser.) Maybe you should check the headers of the ajax response and if it is a redirect make the redirect happen using javascript? Or simply make one of the ajax responses be {"redirect_to": "http://www.example.com/"} and parse it out on the client side. Hope that helps, Alex On Sep 15, 2:07 am, Margie Roginski wrote: > I have a situation where the user fills in a form and hits submit to > post the form. If my views.py code detects an error in the form, I > want to return some info to the client and put it into the dom via > jquery. If there is no error, I want to redirect to another page. > Can anyone advise me on the best way to do this? I've succesfully > used $.post() to grab the error info and put it in the dom. However, > in the case where there is no error, I can't figure out how to do the > redirect. > > I've tried having the views.py code pass back the url that I want to > redirect to, and then when my $.post() callback function is called, it > sets window.location to that url. But this seems to have some issues > when the url contains an anchor (for some reason firefox seems to > cache anchored urls and not redirect to them in the normal way). > > Is there any way to specify that even though $.post() started the > server request, that the server should just redirect to a url (ie, > using just the basic HttpResponseRedirect() or something like that) > and not return and call the $.post callback function? > > Thanks for any pointers, > > Margie --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~--~~~~--~~--~--~---
Re: how to return ajax info in one case, and redirect to a different url in another?
Could you just do validation in the view, then when you get the response, if there are no errors, submit the form with javascript (form.submit()), handle it in the view and redirect? On Sep 15, 3:07 am, Margie Roginski wrote: > I have a situation where the user fills in a form and hits submit to > post the form. If my views.py code detects an error in the form, I > want to return some info to the client and put it into the dom via > jquery. If there is no error, I want to redirect to another page. > Can anyone advise me on the best way to do this? I've succesfully > used $.post() to grab the error info and put it in the dom. However, > in the case where there is no error, I can't figure out how to do the > redirect. > > I've tried having the views.py code pass back the url that I want to > redirect to, and then when my $.post() callback function is called, it > sets window.location to that url. But this seems to have some issues > when the url contains an anchor (for some reason firefox seems to > cache anchored urls and not redirect to them in the normal way). > > Is there any way to specify that even though $.post() started the > server request, that the server should just redirect to a url (ie, > using just the basic HttpResponseRedirect() or something like that) > and not return and call the $.post callback function? > > Thanks for any pointers, > > Margie --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~--~~~~--~~--~--~---