Thanks for replying.

value=""bla bla bla  SubRegion 3" already tried without success ...
Any other idea ?


On Oct 6, 7:27 pm, puercoespin <jzaragoza.puercoes...@gmail.com>
wrote:
> For selected, try
>
>  (_name="region_to_search",
> value="bla bla bla  SubRegion 3")
>
> instead of
>
> (_name="region_to_search",
> selected="bla bla bla  SubRegion 3")
>
> On 6 oct, 18:27, Dominique <mydom...@gmail.com> wrote:
>
>
>
>
>
>
>
> > Hello All,
>
> > First things first:  congratulations to Massimo and all those who
> > help.
> > Web2py is really a great framework.
> > Even for non-professional developers like me, it is both easy and
> > powerful.
> > A big big thank for providing such a nice framework.
> > I am trying to learn web2py (with an average Python level), so forgive
> > me for my silly questions (there will be others ;))
>
> > Could anybody help me with this SELECT / OPTGROUP problem ?
> > The following SELECT with OPTGROUP example illustrates my problems
> > (see below).
> > May be it is more a python difficulty than a web2py problem... (I am
> > not a professional).
>
> > 1) How to make an item of the list "selected", for instance 'SubRegion
> > 3' ? I tried with value= 'SubRegion 3' or selected='SubRegion 3'  but
> > in this case, it doesn't work.
> > Idea: the visitor gives his region, then his region is automatically
> > pre-selected when he's in the search area.
> > He can change it too.
> > 2) keepvalues=True  does not work in my example (although it usually
> > works fine with INPUTs, SELECTs,...)
> > 3) If someone has a more elegant way to program the building of the
> > select, I would appreciate ;)
> > 4) Something else: I also made another form to generate a query (and
> > its result) with a sort order.
> > Is there a way to programmatically trigger the submit button when the
> > sort order is changed ?
> > (ie: I want the user to avoid having to click on submit after he
> > changed the sort order)
>
> > Thanks in advance for any help
> > Dominique
>
> > In models:
> > db.define_table('region',
> >         Field('name', 'string', length=250))
> > db.define_table('subregion',
> >         Field('name', 'string', length=250),
> >     Field('region', db.region))
> > db.region.insert(name="Region A")
> > db.region.insert(name="Region B")
> > db.subregion.insert(name="SubRegion 1", region=1)
> > db.subregion.insert(name="SubRegion 2", region=1)
> > db.subregion.insert(name="SubRegion 3", region=2)
> > db.subregion.insert(name="SubRegion 4", region=2)
> > db.subregion.insert(name="SubRegion 5", region=2)
> > db.subregion.insert(name="SubRegion 6", region=2)
>
> > In Controller:
> > def search_form():
> >     q = db(db.region.id==db.subregion.region)\
> >     .select(orderby=db.region.name | db.subregion.name)
>
> >     def get_it(rows):
> >         """
> >         Creates a list of tuples to be used in the SELECT helper:
> >         [('Region A',['bla bla bla  SubRegion 1','bla bla bla
> > SubRegion 2', 'bla bla bla  SubRegion 3']),
> >         ('Region A',['bla bla bla  SubRegion 4','bla bla bla
> > SubRegion 5', 'bla bla bla  SubRegion 6'])]
> >         """
> >         alist=[]
> >         for row in rows:
> >             nr = row.region.name
> >             if nr not in alist:
> >                 alist.append(nr)
> >         the_list=[]
> >         for elem in alist:
> >             newlist=[]
> >             for row in rows:
> >                 if row.region.name == elem:
> >                     newlist.append('bla bla bla  '+row.subregion.name)
> >             the_list.append([elem,OPTGROUP(*newlist)])
> >         return the_list
>
> >     t=None
> >     form=FORM(
> >             TR("",SELECT(*get_it(q), **dict(_name="region_to_search",
> > selected="bla bla bla  SubRegion 3"))),
> >             TR("",INPUT(_type="submit",_value="Search"))
> >               )
>
> >     if form.accepts(request.vars, session, keepvalues=True):
> >         t=form.vars.region_to_search
> >         response.flash="%s"%t
>
> >     return dict(q=q, form=form)
>
> > All this returns something like (there are gluon objects inside...):
> > <select value="bla bla bla  SubRegion 3">
> > <option value="(&#x27;Region A&#x27;, &lt;gluon.html.OPTGROUP object
> > at 0x0715C090&gt;)">Region A
> > <optgroup name="region_to_search">
> > <option value="bla bla bla  SubRegion 1">bla bla bla  SubRegion 1</
> > option>
> > <option value="bla bla bla  SubRegion 2">bla bla bla  SubRegion 2</
> > option>
> > </optgroup>
> > </option>
> > <option value="(&#x27;Region B&#x27;, &lt;gluon.html.OPTGROUP object
> > at 0x0715CBF0&gt;)">Region B<optgroup name="region_to_search">
> > <option value="bla bla bla  SubRegion 3">bla bla bla  SubRegion 3</
> > option>
> > <option value="bla bla bla  SubRegion 4">bla bla bla  SubRegion 4</
> > option>
> > <option value="bla bla bla  SubRegion 5">bla bla bla  SubRegion 5</
> > option>
> > <option value="bla bla bla  SubRegion 6">bla bla bla  SubRegion 6</
> > option>
> > </optgroup>
> > </option>
> > </select>

Reply via email to