That explains why I had to stuff it into a hidden variable or input... cool!

On Wednesday, August 12, 2015 at 10:35:47 AM UTC-7, Val K wrote:
>
> Yes! Of course! Because there is a small  bug in  web2py.js  in ajax() (or 
> in the manual)  :
> If  middle arg ( '[   ]' ) is string, it's treated as JQuery selector 
> without any processing!
> So ajax() call must be like: 
>  ajax('{{=URL('default','get_options_for_dropdown2')}}', '[name="name_1"], 
> [name="name_2"]', 'dropdown2')
>
> Here is example (just paste in any controller-file and call  '
> sender_receiver' ):
>
> def listener():
>     ans=UL(
>         LI('sel_1=%s'%request.vars.sel_1), 
>         LI('sel_2=%s'%request.vars.sel_2)
>         )
>     return ans #  - it can be a dict(ans=ans) if used  
> ajax('listener.load' ...    ) instead ajax('listener' ...    )
>
> def sender_receiver():
>     onchng="""ajax('listener' , '[name="sel_1"], [name="sel_2"]', 
> 'answer');   """
>     sel1=SELECT('opt1', 'opt2', 'opt3', _name='sel_1', _onchange=onchng)
>     sel2=SELECT('opt1', 'opt2', 'opt3', _name='sel_2', _onchange=onchng)
>     ans=DIV(_id='answer')
>     
>     return dict(sel1=sel1, sel2=sel2, ans=ans)
>
>
>
>
>
> On Wednesday, August 12, 2015 at 10:46:08 AM UTC+3, Gael Princivalle wrote:
>>
>> Thanks a lot Val that's certainly the solution, however in the controller 
>> the var is always empty.
>> This is the original select code:
>> <select name='ceo_scheme' onchange="$('#overrides').empty(); ajax(
>> '{{=URL('default','get_options_for_overrides')}}', ['ceo_scheme'], 
>> 'overrides');">
>>
>> If I set manually the var in get_options_for_overrides the ajax call 
>> works.
>> For debug, if I modify get_options_for_overrides for 
>> returning get_options_for_overrides.vars.ceo_scheme the target select 
>> 'override' is empty.
>>
>> My original controller:
>> def get_options_for_overrides():
>>     ceo_scheme_id = get_options_for_overrides.vars.ceo_scheme
>>     overrides = db(db.ceo_schemes_and_overrides.ceo_scheme == 
>> ceo_scheme_id).select(db.ceo_schemes_and_overrides.ALL)
>>     html = ''
>>     for override in overrides:
>>         html += '<option value=' + str(override.override.id) + '>' + 
>> override.override.name + '</option>' + '\r\n'
>>     return html
>>
>> My controller for debug:
>> def get_options_for_overrides():
>>     ceo_scheme_id = get_options_for_overrides.vars.ceo_scheme
>>     return ceo_scheme_id
>>
>> Do you know why?
>>
>> Regards.
>>
>> Il giorno martedì 11 agosto 2015 22:32:06 UTC+2, Val K ha scritto:
>>>
>>> Hello.
>>> Keep in mind that ajax() - is a simple web2py function  which is based 
>>> on Jquery (see web2py.js , its  code  is very short and clear)
>>> It can pass to controller  the values of the input elements only, see 
>>> http://api.jquery.com/serialize/. 
>>> So your select controls must have a  name   
>>> - <select name="any_name_1" ...
>>>
>>> To pass its  values just include its names in ['  '] -  ajax('{{=URL('
>>> default','get_options_for_dropdown2')}}', ['any_name_1,  any_name_2, ...
>>> '], 'dropdown2');">
>>> To get it in the controller: 
>>> get_options_for_dropdown2.vars.any_name_1
>>>
>>>
>>>
>>> On Tuesday, August 11, 2015 at 6:43:59 PM UTC+3, Gael Princivalle wrote:
>>>>
>>>> Hello.
>>>>
>>>> I'm still making a form like in this post:
>>>>
>>>> https://groups.google.com/forum/#!searchin/web2py/jquery$20db/web2py/tvfncYsLrQs/MRHG5MWOMlAJ
>>>>
>>>> <!-- DROPDOWN1-->
>>>> <select onchange="jQuery('#dropdown2').empty(); ajax('{{=URL('default
>>>> ','get_options_for_dropdown2')}}', [''], 'dropdown2');">
>>>>     <option...
>>>> </select>
>>>> <span id='dropdown2'>
>>>> <!-- DROPDOWN2-->
>>>> <select id='dropdown2'>
>>>>     <option...
>>>> </select>
>>>>
>>>> How is it possible to pass like a var the current select option value 
>>>> to the ajax call?
>>>>
>>>> With something like that?
>>>> data: {value: $('#select option:selected').val()}
>>>>
>>>> How it will be possible to retrieve this in the controller?
>>>>
>>>> Thanks.
>>>>
>>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to