[web2py] Create SQLFORM with one of its field's as ajax enabled

2013-01-31 Thread newbie
Hi
  I m a newbie working on web2py,and i want to create an SQLForm 
with database Employee.The fields of db.Employee are name,campus,timzezone
.I want the user to input in the SQLform ,but the last filed of timezone 
shud be such that when the user inputs in the field ,it shud present a 
dropdown of fields from another database called 'timezone_countries'.The 
user shud be able to select from the dropdown and submit the form .The code 
i have written in DB,Default,and view are here respectively:-
DB.py
db.define_table('Employee',Field('name'),Field('campus'),Field('timezone'))


db.define_table('timezone_countries',Field('countries'))
def timezone_countries_data():
result = {}
result['countries'] = 'Brazil/Rio' 
db.timezone_countries.insert(**result)
db.commit()

DEFAULT.py
def timezone_countries_dataF():
 timezone_countries_data()

def emp_input():
form=SQLFORM(db.Employee)
return locals()

def emp_selector():
if not request.vars.emp_timezone: 
---where
 
emp_timezone is the id of timezone in SQLFORM
return ' '
pattern = request.vars.emp_timezone.capitalize() + '%'
selected = [row.countries for row in 
db(db.timezone_countries.countries.like(pattern)).select()]
return ''.join([DIV(k,
_onclick=jQuery('#emp_timezone').val('%s') % k,
_onmouseover=this.style.backgroundColor='yellow',
_onmouseout=this.style.backgroundColor='white'
).xml() for k in selected])
   
View:
{{extend 'layout.html'}}
{{=form}}
 style
 #suggestions { position: relative; }
 .suggestions { background: white; border: solid 1px #55A6C8; }
 .suggestions DIV { padding: 2px 4px 2px 4px; }
 /style
 
 div style=position: absolute; id=suggestions
 class=suggestions/div
 
 
 script
 jQuery(#emp_timezone).keyup(function(){
 ajax('emp_selector', ['emp_timezone'], 'suggestions')});
 /script
 

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




Re: [web2py] Create SQLFORM with one of its field's as ajax enabled

2013-01-31 Thread Richard Vézina
Have you look at this plugin :
http://dev.s-cubism.com/plugin_lazy_options_widget

It require a dependecy to suggest plugin as explained on the site, but you
can avoid using it. I already post answer to Jim on this list about that.
If you need more help with the integration of lazy option widget plugin let
me know...

Richard


On Wed, Jan 30, 2013 at 11:59 PM, newbie nehadu...@gmail.com wrote:

 Hi
   I m a newbie working on web2py,and i want to create an SQLForm
 with database Employee.The fields of db.Employee are name,campus,timzezone
 .I want the user to input in the SQLform ,but the last filed of timezone
 shud be such that when the user inputs in the field ,it shud present a
 dropdown of fields from another database called 'timezone_countries'.The
 user shud be able to select from the dropdown and submit the form .The code
 i have written in DB,Default,and view are here respectively:-
 DB.py
 db.define_table('Employee',Field('name'),Field('campus'),Field('timezone'))


 db.define_table('timezone_countries',Field('countries'))
 def timezone_countries_data():
 result = {}
 result['countries'] = 'Brazil/Rio'
 db.timezone_countries.insert(**result)
 db.commit()

 DEFAULT.py
 def timezone_countries_dataF():
  timezone_countries_data()

 def emp_input():
 form=SQLFORM(db.Employee)
 return locals()

 def emp_selector():
 if not request.vars.emp_timezone:
 ---where
 emp_timezone is the id of timezone in SQLFORM
 return ' '
 pattern = request.vars.emp_timezone.capitalize() + '%'
 selected = [row.countries for row in
 db(db.timezone_countries.countries.like(pattern)).select()]
 return ''.join([DIV(k,
 _onclick=jQuery('#emp_timezone').val('%s') % k,
 _onmouseover=this.style.backgroundColor='yellow',
 _onmouseout=this.style.backgroundColor='white'
 ).xml() for k in selected])

 View:
 {{extend 'layout.html'}}
 {{=form}}
  style
  #suggestions { position: relative; }
  .suggestions { background: white; border: solid 1px #55A6C8; }
  .suggestions DIV { padding: 2px 4px 2px 4px; }
  /style

  div style=position: absolute; id=suggestions
  class=suggestions/div


  script
  jQuery(#emp_timezone).keyup(function(){
  ajax('emp_selector', ['emp_timezone'], 'suggestions')});
  /script


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




-- 

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




Re: [web2py] Create SQLFORM with one of its field's as ajax enabled

2013-01-31 Thread newbie
Hi Richard,
Thanks for the answer.
 Actually i am able to achieve Ajax enabled text box in an 
SQLFORM...But the problem is the sqlform is auto generated by the 
SQLFORM.grid for that database.
The code for SQLFORM which is working for normal tables is:
 
DB.py
db.define_table('tag',Field('name'),Field('campus'),Field('timezone'))
def tag_data():
result = {}
result['name'] = 'Neha'
result['campus'] = 'Orion'
result['timezone'] = 'America/newyork'
db.tag.insert(**result)
db.commit()
db.define_table('timezone_list',Field('countries'))
def timezone_list_data():
result = {}
result['countries'] = 'Ireland' 
db.timezone_list.insert(**result)
db.commit()
def timezone_bulk():
db.timezone_list.bulk_insert([{'countries':'Africa/Abidjan'}, 
{'countries':'Africa/Accra'}, {'countries':'Africa/Addis_Ababa'},
  
{'countries':'Africa/Bamako'},{'countries':'America/Argentina/Buenos_Aires'}, 
{'countries':'America/Argentina/ComodRivadavia'}, 
{'countries':'America/Argentina/Rio_Gallegos'},
  
{'countries':'America/Cambridge_Bay'},{'countries':'America/Chicago'},{'countries':'America/Costa_Rica'},{'countries':'America/Detroit'},
  
{'countries':'Indian/Antananarivo'},{'countries':'Indian/Mahe'},{'countries':'Indian/Maldives'},{'countries':'Indian/Reunion'},
  
{'countries':'US/Hawaii'},{'countries':'US/Pacific'},{'countries':'UTC'},{'countries':'Zulu'},
  {'countries':'Singapore'}])
db.commit()
 
DEFAULT.py
def month_input():
form=SQLFORM(db.tag)
return locals()
def month_selector():
if not request.vars.timezone: 
return ''
pattern = request.vars.timezone.capitalize() + '%'
selected = [row.countries for row in 
db(db.timezone_list.countries.like(pattern)).select()]
return ''.join([DIV(k,
_onclick=jQuery('#tag_timezone').val('%s'); 
jQuery('#suggestions').hide();   % k,
_onmouseover=this.style.backgroundColor='yellow',
_onmouseout=this.style.backgroundColor='white',

).xml() for k in selected])
def timezone_list_dataF():
timezone_list_data()   
def timezone_bulkF():
timezone_bulk() 
 
month_input.html
{{extend 'layout.html'}}
{{=form}}
 style
 #suggestions { position: relative; }
 .suggestions { background: white; border: solid 1px #55A6C8; }
 .suggestions DIV { padding: 2px 4px 2px 4px; }
 /style
  div  style=position:absolute;margin-top:-62px;margin-left:83px; 
id=suggestions class=suggestions  /div
  
 script
 jQuery(#tag_timezone).keyup(function(){
  jQuery('#suggestions').show(); 
 ajax('month_selector', ['timezone'], 'suggestions')});
 /script
 
 
But i have to generate the same result for an auto generated 
SQLFORM.Actually we are using an sqlform.grid which has an inbuilt option 
for ADD.And on clicking on that an autogenerated SQLFORM for adding inputs 
opens.Now the goal is to add another field in that page which is ajax 
enabled.Can we do it?.Kindly helpThanks in advance..
 
 

On Thursday, 31 January 2013 20:32:13 UTC+5:30, Richard wrote:

  Have you look at this plugin :
 http://dev.s-cubism.com/plugin_lazy_options_widget

 It require a dependecy to suggest plugin as explained on the site, but you 
 can avoid using it. I already post answer to Jim on this list about that. 
 If you need more help with the integration of lazy option widget plugin let 
 me know...

 Richard


 On Wed, Jan 30, 2013 at 11:59 PM, newbie neha...@gmail.com 
 javascript:wrote:

 Hi 
   I m a newbie working on web2py,and i want to create an SQLForm 
 with database Employee.The fields of db.Employee are name,campus,timzezone
 .I want the user to input in the SQLform ,but the last filed of timezone 
 shud be such that when the user inputs in the field ,it shud present a 
 dropdown of fields from another database called 'timezone_countries'.The 
 user shud be able to select from the dropdown and submit the form .The code 
 i have written in DB,Default,and view are here respectively:-
 DB.py
  
 db.define_table('Employee',Field('name'),Field('campus'),Field('timezone'))


  db.define_table('timezone_countries',Field('countries'))
 def timezone_countries_data():
 result = {}
 result['countries'] = 'Brazil/Rio' 
 db.timezone_countries.insert(**result)
 db.commit()

 DEFAULT.py
 def timezone_countries_dataF():
  timezone_countries_data()

  def emp_input():
 form=SQLFORM(db.Employee)
 return locals()

 def emp_selector():
 if not request.vars.emp_timezone: 
 ---where
  
 emp_timezone is the id of timezone in SQLFORM
 return ' '
 pattern = request.vars.emp_timezone.capitalize() + '%'
 selected =