Ok great, I have noted: my_extra_element = TR(LABEL('Test:'), INPUT(_name='test',value='Some text',_type='text')) form[0].insert(-1,my_extra_element)
Now, in view how do I show the field "test" using custom display as in using {{=form}} its appearing: {{=form.custom.widget.test}} Kind regards, On Thu, Dec 6, 2012 at 9:32 PM, Anthony <abasta...@gmail.com> wrote: > I haven't looked at this in detail, but if you want to add an extra field > to a form, see > http://web2py.com/books/default/chapter/29/07#Adding-extra-form-elements-to-SQLFORM > (you > can also use the DOM manipulation methods described here: > http://web2py.com/books/default/chapter/29/05#Server-side-DOM-and-parsing > ). > > If you need to load options in a select dynamically based on other > selections in the form, that gets more complicated. For some solutions, see > here<http://stackoverflow.com/questions/8146260/best-practice-for-populating-dropdown-based-on-other-dropdown-selection-in-web2p/8152910#8152910> > . > > Anthony > > > On Thursday, December 6, 2012 4:02:37 AM UTC-5, software.ted wrote: >> >> Apologies for my ignorance but I want to add a field [list of items] to a >> SQLFORM created from a table that does not have that field. So to add the >> field I am using Field.Virtual as follows: >> >> db.staff_time_record.**departments = Field.Virtual(db.department) >> >> But this does not seem to allow me to create a virtual field with a >> reference of all departments in the table as a list. Then what I want to do >> if this works or is possible, use on the change of the drop down list of >> departments field on the form to list only the offices in the selected >> department using jQuery in the view as follows: >> >> jQuery('#department').on(**function(){ >> ajax('update_office',['**departments'], >> 'staff_time_record_office_id')**; >> >> My worry here again even if I have not tested this yet is, when the page >> loads first time, it will load all Offices cause of the db defaults. >> >> Please correct me if am way out of line in the normal way of doing things >> in web2py....I have added various components of application. >> >> Model: >> >> <code> >> import datetime >> now = datetime.datetime.today() >> db.define_table("department", >> Field("name"), >> format="%(name)s" >> ) >> db.define_table("office", >> Field("name"), >> Field("department_id", >> db.department, >> requires=IS_IN_DB(db, 'department.id', '%(name)s')), >> format="%(name)s" >> ) >> db.define_table("staff_time_**record", >> Field("time_in","datetime", default=now), >> Field("office_id", db.office, >> requires=IS_IN_DB(db,'office.**id<http://office.id> >> ','%(name)s')) >> ) >> >> </code> >> >> Controller: >> >> <code> >> def index(): >> db.staff_time_record.**departments = Field.Virtual(db.department) >> form = SQLFORM(db.staff_time_record) >> if form.process().accepted: >> response.flash("Time Card for the offer recorded") >> elif form.errors: >> response.flash("There was an error recording the employee record") >> return dict(form=form) >> def update_office(): >> return [OPTION(o.name, _value=o.id) for o in >> db(db.office.department_id == request.vars.departments)] >> </code> >> >> The View: >> >> <code> >> >> {{extend 'layout.html'}} >> <h3>Please record time officer reported for work</h3> >> {{=form.custom.start}} >> <table> >> <tr> >> <td>Officer Department:</td> >> <td>{{=form.custom.widget.**departments}}</td> >> </tr> >> <tr> >> <td>Officer title:</td> >> <td>{{=form.custom.widget.**office_id}}</td> >> </tr> >> <tr> >> <td>Time Reported: </td> >> <td>{{=form.custom.widget.**time_in}}</td> >> </tr> >> <tr> >> <td></td> >> <td>{{=form.custom.submit}}</**td> >> </tr> >> </table> >> {{=form.custom.end}} >> >> <script> >> jQuery('#department').on(**function(){ >> ajax('update_office',['**departments'], >> 'staff_time_record_office_id')**; >> } >> </script> >> >> </code> >> >> >> I think if I get this and understand whats really going on will really >> want us to be part of web2py conf 2013!!! >> >> Ideas to clarify the gray areas above will be appreciated. >> >> >> >> -- >> ..............................**..............................** >> ........................... >> Teddy Lubasi Nyambe >> Opensource Zambia >> Lusaka, ZAMBIA >> >> Cell: +260 97 7760473 >> website: http://www.opensource.org.zm >> >> ~/ >> Human Knowledge belongs to the world! - AntiTrust >> >> Man is a tool-using animal. Without tools he is nothing, with tools he is >> all - Thomas Carlyle 1795-1881 >> >> /~ >> > -- > > > > -- ....................................................................................... Teddy Lubasi Nyambe Opensource Zambia Lusaka, ZAMBIA Cell: +260 97 7760473 website: http://www.opensource.org.zm ~/ Human Knowledge belongs to the world! - AntiTrust Man is a tool-using animal. Without tools he is nothing, with tools he is all - Thomas Carlyle 1795-1881 /~ --