You use SQLFORM.factory if you want a form not connected to the database. You use SQLFORM.grid if you want to show database records in tabular form.
On Saturday, 19 October 2013 11:03:23 UTC-5, Wonton wrote: > > Hello again! > > After some reading about SQLForm, obviously that's what I need. But since > there are some different options I would like to choose the correct one. > For my case, should I use a SQLForm.grid or a SQLForm.factory()? And in the > case of using a grid, is it posible to have a select list (something like a > drop-down list) for each row or I have to use the "Update" button for each > one? > > Kind regards! > > On Friday, October 18, 2013 10:28:47 PM UTC+2, Wonton wrote: >> >> Thank you very much Tim!! >> >> I didn't even consider this posibility. It seems that it's what I was >> looking for. I will try it. >> >> Kind regards! >> >> On Friday, October 18, 2013 3:56:43 AM UTC+2, Tim Richardson wrote: >>> >>> You are doing this the really hard way, I think. >>> If you read the book a bit more you will discover web2py's built-in >>> forms. >>> Probably you should use SQLFORM. >>> This means you do all the coding in the controller. Behind the scenes, >>> SQLFORM will create a variable which contains the HTML to display the form, >>> and it also includes the logic to update the database table. >>> >>> While you are developing, you can rely on the "developer" or generic >>> views, which means you don't even need to worry about making a view until >>> you are ready. >>> >>> In other words, you can do all of this in one line (in the controller) >>> >>> form = SQLFORM(db.matches) >>> >>> (assuming you have setup up your table definition well). >>> >>> >>> Or you should read about SQLFORM.grid, which may be more what you want. >>> It starts by displaying all the records in a table, and then lets the user >>> choose which rows to edit. It then automatically generates an SQLFORM for >>> that row. Still only one line :) >>> >>> >>> >>> >>> >>> >>> On Friday, 18 October 2013 10:22:40 UTC+11, Wonton wrote: >>>> >>>> Hello, >>>> >>>> I've been working with web2py controllers to connect with my database >>>> and I haven't use views so far, so I don't know if what I'm trying to do >>>> is >>>> very wrong. In that case, please, tell me ;-). >>>> >>>> Suppose I have this: >>>> >>>> controllers/mycontroller.py: >>>> >>>> def show_matches(): >>>> matches = db(db.matches.id > 0).select() >>>> return dict(matches=matches) >>>> >>>> views/show_matches.html: >>>> >>>> {{extend 'layout.html'}} >>>> <h1>MATCHES</h1> >>>> <table> >>>> <th> >>>> <th>MATCH</th> >>>> <th>TEAM1</th> >>>> <th>TEAM2</th> >>>> </th> >>>> {{for match in matches:}} >>>> <tr> >>>> <td>{{=match['team1']}} vs. {{=match['team2']}}</td> >>>> <td> >>>> <forms> >>>> <select style="width:80px;"> >>>> <option>0</option> >>>> <option>1</option> >>>> <option>2</option> >>>> <option>+2</option> >>>> </select> >>>> </form> >>>> </td> >>>> <td> >>>> <forms> >>>> <select style="width:80px;"> >>>> <option>0</option> >>>> <option>1</option> >>>> <option>2</option> >>>> <option>+2</option> >>>> </select> >>>> </form> >>>> </td> >>>> </tr> >>>> {{pass}} >>>> </table> >>>> >>>> >>>> I would like to include a button (with 'a' and 'onclick' I guess) at >>>> the bottom of the page so when the user clicks in it, all data selected in >>>> the forms are sent to mycontroller.py (to store_results_in_ddbb function). >>>> >>>> How could I read all this data and send it to a controller? Should I >>>> have only one <form> and all <select> components pointing to it through a >>>> 'form' tag? Should I have all select components with an 'id' tag and read >>>> the data through this tag? >>>> >>>> I'm a newbie with HTML (web frontend in general) so I hope I am not >>>> saying something very stupid ;-). >>>> >>>> Any idea will be very appreciated. >>>> >>>> Thank you very much and kind regards! >>>> >>>> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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.