sounds like premature optimization / I don't want to use a LOAD :P did you try redirecting after the form with type='auto' ? (I think that that's a feature available in the last few releases...)
On Wednesday, November 7, 2012 11:31:09 PM UTC+1, Simon Carr wrote: > > I want it to be loaded with AJAX and submitted normally. The reason is two > fold. > > 1. The page needs to be refreshed after the form is submitted. > 2. By loading the form by AJAX and Submitting normally I am at least > cutting full page loads down by 50% > > On Wednesday, 7 November 2012 21:41:23 UTC, Niphlod wrote: >> >> I'm loosing you (too much asked, too little information). >> - you have a page -->done >> - you want a form loaded into a page --> done >> - you want it to be submitted to the url that is loaded from --> done (if >> it's loaded through ajax, that means that you don't want to reload the main >> page, so it can't be submitted with anything else) >> >> now what ? >> >> On Wednesday, November 7, 2012 10:34:48 PM UTC+1, Simon Carr wrote: >>> >>> Your right. Thanks mate. I was getting confused over cid. But anyway it >>> works great for creating the form. >>> >>> I notice that the form also submits via AJAX. How do I make it submit >>> normally so that I can have the page refreshed? I need the users list of >>> subscribed Charts and some other details to be updated after submitting the >>> form. >>> >>> Thanks >>> Simon >>> >>> On Wednesday, 7 November 2012 21:04:35 UTC, Niphlod wrote: >>>> >>>> doesn't it already (provided that there is a <div id='whatever'></div> >>>> in the page) ? >>>> >>>> On Wednesday, November 7, 2012 9:36:27 PM UTC+1, Simon Carr wrote: >>>>> >>>>> Thank you, but how do I implement this in my view so that it loads the >>>>> form into a div when the link is clicked? >>>>> >>>>> On Wednesday, 7 November 2012 20:00:52 UTC, Niphlod wrote: >>>>>> >>>>>> Wait a sec. callback and target are meant to load a fragment via >>>>>> ajax, but that doesn't "fire" all the logic needed to intercept FORMs >>>>>> etc. >>>>>> _callback and _target are meant roughly as an "onclick" under >>>>>> steroids. (under the hood it translates to an onclick="ajax(url, >>>>>> target)") >>>>>> >>>>>> What you're trying to achieve is probably offered by the LOAD helper, >>>>>> that can be exploited in an A() using _href and cid >>>>>> >>>>>> A('Add to My Charts',_href=URL('subscribe_form',vars={'chartname': >>>>>> 'whatever'}), cid='whatever') >>>>>> >>>>>> That will load the component and trap all links and form submissions, >>>>>> because it translates to an onclick="web2py_component(url, target)" >>>>>> >>>>>> >>>>>> On Wednesday, November 7, 2012 8:39:50 PM UTC+1, Simon Carr wrote: >>>>>>> >>>>>>> The URL with the form in >>>>>>> is web2py_xlchart_dashboard/charts/user_charts so without an action it >>>>>>> will >>>>>>> submit to *user_charts*, but I need it to submit to* subscribe_form >>>>>>> *which is the function that was called by AJAX to generate the Form. >>>>>>> >>>>>>> or am I not understanding something? >>>>>>> >>>>>>> Simon >>>>>>> >>>>>>> On Wednesday, 7 November 2012 19:26:46 UTC, Derek wrote: >>>>>>>> >>>>>>>> Why would you need to create an action for the form? Are you not >>>>>>>> using self submit? >>>>>>>> >>>>>>>> On Wednesday, November 7, 2012 12:22:03 PM UTC-7, Simon Carr wrote: >>>>>>>>> >>>>>>>>> I have this piece of code that calls a function in my controller >>>>>>>>> when clicked. >>>>>>>>> >>>>>>>>> {{=A('Add to My Charts',callback=URL('subscribe_form',vars={ >>>>>>>>> 'chartname':chart.chartName}),target=str(chart.chartName).replace( >>>>>>>>> '.','_'))}} >>>>>>>>> >>>>>>>>> >>>>>>>>> The subscribe_form function looks like this >>>>>>>>> >>>>>>>>> def subscribe_form(): >>>>>>>>> >>>>>>>>> form = >>>>>>>>> SQLFORM(db.user_chart,fields=['title','description'],hidden=dict(chartname=request.vars['chartname'])) >>>>>>>>> if form.process().accepted: >>>>>>>>> response.flash = 'form accepted' >>>>>>>>> elif form.errors: >>>>>>>>> response.flash = 'form has errors' >>>>>>>>> else: >>>>>>>>> response.flash = 'please fill out the form' >>>>>>>>> return form >>>>>>>>> >>>>>>>>> The Form is created by AJAX, but it's action is blank. >>>>>>>>> >>>>>>>>> Do I have to specify the action myself if I am build a Form via >>>>>>>>> AJAX? >>>>>>>>> >>>>>>>>> Simon >>>>>>>>> >>>>>>>> --