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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.