Yes, I checked: the load function is being triggered and *dpt* variable is 
being set in the function every time I select an option from the first 
drop-down.

Changed the function so it uses OPTION helper:

def add_experience():

add_experience = crud.create(db.seafarer_experience, next=(URL('seafarer', 
'profile')), _class='formstyle')

print request.vars.dpt

ranks = db(db.rank.department_id == 
request.vars.dpt).select(orderby=db.rank.name)

result = ""

for r in ranks:
result += OPTION(r.name, _value=r.id)


return dict(add_experience=add_experience, result=result)

The respective view fragment:

<div class="w2p_fw">
    <select class="generic-widget" id="seafarer_experience_rank" 
name="rank">
        {{=result}}
    </select>
</div>

(The HTML is fixed just for now, I've cut the dynamic code to test the 
auto-populating only...)


On Monday, June 17, 2013 12:47:57 AM UTC+2, villas wrote:
>
> Hmm I'm not sure you have given enough info.  Anyhow:
>
> Check in Firebug whether the load function is being triggered.
> Place print statements in your function to test that the variables are 
> being set.
> Bear in mind that "return dict(...)"  will render a complete page layout.  
> I wonder if that is what you want? 
> Check out the SELECT and OPTION helpers.
>
>
> On Sunday, 16 June 2013 23:10:12 UTC+1, lesssugar wrote:
>>
>> I need to auto-populate my 'ranks' drop-down based on the value selected 
>> in the 'department' one.
>>
>> This is my script:
>>
>> <script>
>> $("#department").change(function() {
>> $("#ranks").load("?dpt=" + $("#department").val());
>> });
>> </script>
>>
>> As you can see, I pass *dpt *var to my current function. This is its 
>> code:
>>
>> def add_experience():
>>
>>     ranks = db(db.rank.department_id == request.vars.dpt).select(orderby=
>> db.rank.name)
>>
>>     result = ""
>>
>>     for r in ranks:
>>         result += "<option value='" + str(r.id) + "'>" + r.name + 
>> "</option>"
>>
>>
>>     return dict(result=XML(result))
>>
>> When I select a value in the first drop-down, a request is being sent to 
>> [controller]/add_experience?dpt=[value selected]. However the second 
>> drop-down does not populate with respective data - it's empty. I'm clearly 
>> missing something. Any help?
>>
>>

-- 

--- 
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