def echo():
    value = request.post_vars.f_item_category
    filtered_sub = db(db.t_sub_categories.f_category_id == 
value).select(db.t_sub_categories.ALL,orderby=db.t_sub_categories.f_sub_category_name,
 
cache=(cache.ram,10),cacheable=True)
    filtered_sub = dict(filtered_sub = filtered_sub)
    select_header = "<select id='t_items_f_item_subcategory' 
class='generic-widget' name='f_item_subcategory'> \
         <option value=''></option>"
    select_footer = '</select>'
    def select_body():
        for f in filtered_sub:
            #return "<option value='f.id'>" + f.f_item_subcategory + 
"</option>"
            return 'test'
    return select_footer + select_body() + select_footer

This will render 'test' just once(where expected more).
I think the problem is that the filtered_sub = dict() from some reason.
If I replace the return 'test' with:
return "<option value='f.id'>" + f.f_item_subcategory + "</option>"
It flashes an error.
Thanks. 






On Saturday, October 5, 2013 10:32:43 AM UTC+3, Avi A wrote:
>
> Thanks. Yes, I will look carefully, but it looks like the html is in the 
> controller.
>
> On Saturday, October 5, 2013 2:31:10 AM UTC+3, Derek wrote:
>>
>> This question gets asked frequently here, there should be a FAQ somewhere 
>> and this should be in it...
>>
>> Is this what you want?
>>
>> http://www.web2pyslices.com/slice/show/1467/cascading-drop-down-lists-with-ajax
>>
>> On Friday, October 4, 2013 2:04:41 PM UTC-7, Avi A wrote:
>>>
>>> I was exactly pasting it actually :).
>>>
>>> def echo():
>>>     value = request.post_vars.f_item_category
>>>     filtered_sub=db(db.t_sub_categories.f_category_id == 
>>> value).select(db.t_sub_categories.ALL,orderby=db.t_sub_categories.f_sub_category_name,
>>>  
>>> cache=(cache.ram,10),cacheable=True)
>>>
>>>    return dict(filtered_sub=filtered_sub)
>>>
>>>
>>>
>>>  <select id="t_items_f_item_subcategory" class="generic-widget" 
>>> name="f_item_subcategory">
>>>             <option value=""></option>
>>>             {{for f in filtered_sub:}}
>>>             <option value="{{f.id}}">{{=f.f_item_subcategory}}</option>
>>>             {{pass}}
>>>         </select>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Friday, October 4, 2013 11:26:24 PM UTC+3, Avi A wrote:
>>>>
>>>> One more question please,
>>>> so now I have to build the filtered (with the value) sub categories 
>>>> select object's html in the controller and return into the target div?
>>>> On Friday, October 4, 2013 11:08:30 PM UTC+3, Avi A wrote:
>>>>>
>>>>> That works...Awesome thanks. 
>>>>>
>>>>> On Friday, October 4, 2013 10:14:37 PM UTC+3, Niphlod wrote:
>>>>>>
>>>>>> you where trying the exact same thing on the onselect, and I left it 
>>>>>> there as it was.
>>>>>> If you want to send the value of the selected item as a post 
>>>>>> variable, use 
>>>>>>
>>>>>> ajax('echo', '#t_items_f_item_category', 'target')
>>>>>>
>>>>>> you'll get request.post_vars.f_item_category filled in the echo 
>>>>>> function.
>>>>>>
>>>>>> On Friday, October 4, 2013 9:52:42 AM UTC+2, Avi A wrote:
>>>>>>>
>>>>>>> This test returns none:
>>>>>>> def echo():
>>>>>>>     return request.vars.value if request.vars else 'None'
>>>>>>>
>>>>>>> On Thursday, October 3, 2013 8:18:15 PM UTC+3, Avi A wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>> I'm trying to use the ajax function on a list , with no success so 
>>>>>>>> far.
>>>>>>>>
>>>>>>>> def echo():
>>>>>>>>     return request.vars.value
>>>>>>>>
>>>>>>>> <select class="generic-widget" id="t_items_f_item_category" 
>>>>>>>> name="f_item_category">
>>>>>>>>     <option value=""></option>
>>>>>>>>     {{for c in category:}}
>>>>>>>>     <option value='{{=c.id}}' onselect="ajax('echo', 
>>>>>>>> ['{{=c.id}}'],'target')" 
>>>>>>>> >{{=c.f_category_name}}</option>
>>>>>>>>     {{pass}}
>>>>>>>> </select>
>>>>>>>>
>>>>>>>> <div id='target'></div>
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>
>>> On Friday, October 4, 2013 11:59:54 PM UTC+3, Niphlod wrote:
>>>>
>>>> are you asking to me to read your mind ? :D
>>>>
>>>> On Friday, October 4, 2013 10:26:24 PM UTC+2, Avi A wrote:
>>>>>
>>>>> One more question please,
>>>>> so now I have to build the filtered (with the value) sub categories 
>>>>> select object's html in the controller and return into the target div?
>>>>> On Friday, October 4, 2013 11:08:30 PM UTC+3, Avi A wrote:
>>>>>>
>>>>>> That works...Awesome thanks. 
>>>>>>
>>>>>> On Friday, October 4, 2013 10:14:37 PM UTC+3, Niphlod wrote:
>>>>>>>
>>>>>>> you where trying the exact same thing on the onselect, and I left it 
>>>>>>> there as it was.
>>>>>>> If you want to send the value of the selected item as a post 
>>>>>>> variable, use 
>>>>>>>
>>>>>>> ajax('echo', '#t_items_f_item_category', 'target')
>>>>>>>
>>>>>>> you'll get request.post_vars.f_item_category filled in the echo 
>>>>>>> function.
>>>>>>>
>>>>>>> On Friday, October 4, 2013 9:52:42 AM UTC+2, Avi A wrote:
>>>>>>>>
>>>>>>>> This test returns none:
>>>>>>>> def echo():
>>>>>>>>     return request.vars.value if request.vars else 'None'
>>>>>>>>
>>>>>>>> On Thursday, October 3, 2013 8:18:15 PM UTC+3, Avi A wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>> I'm trying to use the ajax function on a list , with no success so 
>>>>>>>>> far.
>>>>>>>>>
>>>>>>>>> def echo():
>>>>>>>>>     return request.vars.value
>>>>>>>>>
>>>>>>>>> <select class="generic-widget" id="t_items_f_item_category" 
>>>>>>>>> name="f_item_category">
>>>>>>>>>     <option value=""></option>
>>>>>>>>>     {{for c in category:}}
>>>>>>>>>     <option value='{{=c.id}}' onselect="ajax('echo', 
>>>>>>>>> ['{{=c.id}}'],'target')" 
>>>>>>>>> >{{=c.f_category_name}}</option>
>>>>>>>>>     {{pass}}
>>>>>>>>> </select>
>>>>>>>>>
>>>>>>>>> <div id='target'></div>
>>>>>>>>>
>>>>>>>>> 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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to