Alex,

Thanks.  I thought based on the book that the 2nd argument of ajax was
passing the values to request.vars.variable.  I pasted some of the
code from the book below for reference (http://web2py.com/book/default/
chapter/10?search=ajax#The-ajax-Function).  Based on this I originally
had the code below in test_chg.  Am I mistaken about what the 2nd
argument is?  Also, regarding your suggestion, could you tell me how
to identify the selected item so that I can pass as an args/vars in
the URL as you recommended?

def one():
    return dict()

def echo():
    return request.vars.name

{{extend 'layout.html'}}
<form>
   <input id="name" onkeyup="ajax('echo', ['name'], 'target')" />
</form>
<div id="target"></div>

def test_chg
firm=request.vars.firmdrop
strats = db(db.firmstrat.firm_id==firm).select()
options=[]
for strat in strats:
    options.append(strat.strat_id.name)
return DIV(*options).xml()

On Nov 8, 9:37 pm, Alex <yue.a...@gmail.com> wrote:
> How are you passing the value in the request.vars?
>
> I'm going to guess that on your AJAX call in the _onChange handler,
> you want to specify the parameters.  You can do something like:
>
>   - ajax( '{{=URL(c='controllerName',f='test_chg',
> args=request.args(0))}}', ['firmdrop'],'target' )
>
> You can pass whatever you want in args.  If you have values in
> request.vars, you should be able to access then like:
>
>  -  request.vars.variableName
>
> On Nov 7, 9:11 pm, oneroler <samuel.ha...@gmail.com> wrote:
>
>
>
>
>
>
>
> > I'm trying to learn to use the ajax functionality and am having
> > trouble getting it to work correctly.  I am trying to use a dropdown
> > of firms to show the related strategies.  Currently this doesn't
> > return anything to the div, but I do know that the onchange is
> > working.  It seems like the request.vars.values()[0] is not returning
> > anything.  Any help would be appreciated and also any pointers if
> > there is a way to do this better differently.  Below is my code.
>
> > I have based this on this 
> > messagehttp://groups.google.com/group/web2py/browse_thread/thread/4a6149ddcb....
>
> > <<default.py>>
> > def test():
> >     firms = db(db.firm).select()
> >     return dict(firms=firms)
>
> > def test_chg():
> >     firm=request.vars.values()[0]
> >     strats = db(db.firmstrat.firm_id==firm).select()
> >     options=[]
> >     for strat in strats:
> >         options.append(strat.strat_id.name)
> >     return DIV(*options).xml()
>
> > <<test.html>>
> > {{extend 'layout.html'}}
> > {{=SELECT(_id='firmdrop',
> >     _onChange="ajax('test_chg',['firmdrop'],'target');",
> >     *[OPTION(firms[i].name,_value=str(firms[i].id)) for i in
> > range(len(firms))]
> >     )}}
> > <div id="target"></div>
>
> > Thanks,
> > Sam

Reply via email to