Mey be this: http://dev.s-cubism.com/plugin_lazy_options_widget
On Wed, Sep 21, 2011 at 1:13 PM, Omi Chiba <ochib...@gmail.com> wrote: > I have two drop down list. They have foreign key so they're parent-child > structure. I want user to pick category from first list, which will execute > onchange event to dynamically update second list. > > So far, I can confirm onchange event is working to return a string value by > calling 'echo' function but Nothing is returned for 'model' function. > > I have a stupid submit button called 'Update Model' and I am thinking if we > can just simply submit the form with onchange event as if user click the > button. > > Any ideas?? > > > <https://lh5.googleusercontent.com/-CSnuTO2l3wc/TnoMWX7FuLI/AAAAAAAAAEY/CxCeva0_CRQ/firstJPG.JPG> > > > <https://lh5.googleusercontent.com/-5OYHEgfRK5k/TnoMdakVn1I/AAAAAAAAAEg/JLo5YiBQOFM/second.JPG> > > > DB.PY > -------------------- > db.define_table('Category', > Field('Code', 'integer'), > Field('Name')) > > db.define_table('Model', > Field('Code', 'integer'), > Field('Name'), > Field('Category_ID', db.Category), > Field('Note', 'text'), > Field('Image', comment='e.g. Model/abc.jpg'), > Field('Coding_Image', comment='e.g. Coding/abc.jpg'), > Field('Unit')) > > Controllers/default.py > ------------------------------------- > def index(): > if request.vars.model_name: > lists = > db(db.Product.Model_ID==request.vars.model_name).select(db.Product.ALL) > themodels = db(db.Model.id > ==request.vars.model_name).select(db.Model.ALL) > else: > lists = db(db.Product.Model_ID==1).select(db.Product.ALL) > themodels = db(db.Model.id==1).select(db.Model.ALL) > > categories = db().select(db.Category.ALL) > > if request.vars.category_name: > models = > db(db.Model.Category_ID==request.vars.category_name).select(db.Model.ALL) > else: > models = db(db.Model.Category_ID==1).select(db.Model.ALL) > return dict(lists=lists, categories=categories, models=models, > themodels=themodels) > > def model(): > if request.vars.category_name: > models = > db(db.Model.Category_ID==request.vars.category_name).select(db.Model.ALL) > else: > models = db(db.Model.Category_ID==1).select(db.Model.ALL) > return dict(models=models) > > def echo(): > return request.vars.category_name > > > default/index.html > -------------------------------- > <form enctype="multipart/form-data" action="{{URL()}}" method="post"> > <select name='category_name' onchange="ajax('echo', ['category_name'], > 'target')"> > {{for category in categories:}} > <option value="{{=category.id}}" > {{=" selected='selected'" if str(category.id)==request.vars.category_name > else ""}}> > {{=category.Name}} > </option> > {{pass}} > </select> > <input type="submit" value='Update Model'> > > <select> > <option value='a' id='target'>a</option> > </select> > > <select name='model_name' > > {{for model in models:}} > <option value="{{=model.id}}" > {{=" selected='selected'" if str(model.id)==request.vars.model_name > else ""}}> > {{=model.Name}}</option> > {{pass}} > </select> > <input type="submit" value='Show prices '> > </form> > > -- -- Bruno Rocha [ About me: http://zerp.ly/rochacbruno ] [ Aprenda a programar: http://CursoDePython.com.br ] [ O seu aliado nos cuidados com os animais: http://AnimalSystem.com.br ] [ Consultoria em desenvolvimento web: http://www.blouweb.com ]