It will probably be easier if you do it all in one function, and in the 
view, conditionally show results if there are any.

Anthony

On Thursday, July 26, 2012 8:43:33 AM UTC-4, adohertyd wrote:
>
> Hope you guys can give me a hand here. I have two central functions in my 
> controller: index() and resultsDisplay()
>
> In index() the user enters a string into a form and it is assigned to 
> session.var.a
>
> session.var.a is passed to resultsDisplay() and it is processed. In the 
> resultsDisplay() view, I want the form from index() to be shown with the 
> user's string in it. I also will have a number of alternative suggestions 
> for the user. What I want is that if the user enters another term in the 
> form on the results page, or if the user clicks one of the supplied 
> suggestions, the resultsDisplay() function will restart, except that 
> instead of session.var.a being the form data from the index(), it will be 
> whatever the new value is. A great example of this is Google. If you type a 
> query in the main bar it gives you results. You notice that you've spelt 
> the query incorrectly. Google offers a suggestion, or the user has the 
> option of re-typing the query in the box and getting a new set of results. 
> How would I do this? Also, on a side note, how do I give the radio buttons 
> in my form a default value?
>
> *def index():*
>    
>  form = SQLFORM.factory(
>          Field('field_1','string', widget=SQLFORM.widgets.string.widget,
> requires=IS_NOT_EMPTY()),
>          Field('field_2',requires=IS_IN_SET(('Yes','No')), widget=SQLFORM.
> widgets.radio.widget),
>            submit_button='Go!')      
>     if form.process().accepted:
>         session.term=request.vars.field_1
>         session.aggregate=request.vars.field_2
>         redirect(URL('resultsDisplay'))
>     else:
>         response.flash = 'please fill the form'
>     return dict(form=form)
>
>
> *def resultsDisplay():*
>  
>    __function_1(session.term)
>     do some processing
>     __function_2(session.term)
>     do some processing
>     __function_3(session.term)
>
>
>     return locals()
>
>
> *index.html:*
>
> {{=form.custom.begin}}
>   <div id="textBar">{{=form.custom.widget.field_1}}<br />
>   {{=form.custom.submit}}</div>
>   <br />
>   Choice:
>   <div>{{=form.custom.widget.field_2}}</div>
>   {{=form.custom.end}}
>
>
> *resultsDisplay.html:*
> *
> *
> #I want to put the form from index.html here
> {{=DisplayResults_as per resultsDisplay function}}
> #I want to put suggestions that, when clicked, will reload this page with 
> new result set.
>
>

-- 



Reply via email to