Hi!!!
Try using
ajax('{{=URL('insert_data')}}',['opt1','opt2','opt3','txtt1'],':eval');
Regards
El viernes, 1 de julio de 2016, 17:06:06 (UTC-3), Dave S escribió:
>
>
>
> On Friday, July 1, 2016 at 10:47:22 AM UTC-7, [email protected] wrote:
>>
>> Anthony,
>>
>> can you share if you have any examples. how can I keep track of that
>> index as I am not finding any example to get count of request.vars
>>
>> vars: <Storage {'opt1': ['3', '3'], 'opt2': ['12 ', '18 '], 'opt3': ['1',
>> '9'], 'txt1': ['1', '15']}>
>> in this case I have four vars coming from browser which I should insert
>> to database request.vars.opt1, request.vars.opt2, request.vars.opt3 and
>> request.vars.txt1
>>
>> when I iterate loop for first time I should insert 3,12,1,1 as one record
>> and 2nd time it should insert 3,18,9,15 and so on based on data entry form
>>
>> In the above case there are 2 records but sometimes it can be more than 2
>> like -> vars: <Storage {'opt1': ['3', '3','6'], 'opt2': ['12 ', '18
>> ','21'], 'opt3': ['1', '9','12'], 'txt1': ['1', '15','27']}>
>>
>>
>>
> Can you use len(request.vars["opt1"]) ?
>
> /dps
>
>
>
>> On Monday, June 6, 2016 at 9:06:10 AM UTC-6, Anthony wrote:
>>
>>> Looks like each set of inputs has the same input names, so you get back
>>> a list for each variable. I believe browsers preserve the order of input
>>> values for inputs with the same name, so you should be able to just run a
>>> loop and do a separate insert for each set of items in the lists (i.e., on
>>> the first loop, extract element [0] from each list, on the second loop,
>>> extract element [1], etc.).
>>>
>>> Anthony
>>>
>>> On Sunday, June 5, 2016 at 8:54:47 PM UTC-4, [email protected] wrote:
>>>>
>>>> I am getting request.vars as shown below when I print it
>>>>
>>>> vars: <Storage {'opt1': ['3', '3'], 'opt2': ['12 ', '18 '], 'opt3':
>>>> ['1', '1'], 'txt1': ['1', '1']}>
>>>>
>>>> these values are given as input from user interface and it has 2 rows,
>>>> each row has 3 dropdown and 1 text box
>>>>
>>>> now how do I read each item and insert into database, in the database
>>>> there is a table that has 4 columns, as per my requirement now it has to
>>>> insert 2 records in that table
>>>>
>>>> On Friday, June 3, 2016 at 2:21:48 PM UTC-6, Anthony wrote:
>>>>
>>>>> On Friday, June 3, 2016 at 12:35:49 PM UTC-4, [email protected]
>>>>> wrote:
>>>>>>
>>>>>> it is a single select, the values are populated from controller into
>>>>>> a view dynamically in jquery
>>>>>>
>>>>>
>>>>> OK, so what's wrong with your current approach? What are you trying to
>>>>> achieve? Hard to help without seeing your code (e.g., model definitions,
>>>>> etc.). Also, why are you using .getlist for a variable that isn't a list,
>>>>> and then just extracting the first element (which you would get if not
>>>>> using .getlist)?
>>>>>
>>>>> Anthony
>>>>>
>>>>>
>>>>>> On Friday, June 3, 2016 at 6:32:34 AM UTC-6, Anthony wrote:
>>>>>>>
>>>>>>> Hard to say because it's not clear (a) what kind of data are in
>>>>>>> opt1, opt2, etc. (are they multi-select widgets producing lists or just
>>>>>>> single selects?) and (b) how the form inputs map to your database
>>>>>>> fields.
>>>>>>>
>>>>>>> Anthony
>>>>>>>
>>>>>>> On Thursday, June 2, 2016 at 11:55:13 PM UTC-4, [email protected]
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Anthony
>>>>>>>>
>>>>>>>> I wanted to iterate all the values from request.vars these values
>>>>>>>> are passed using ajax function from View, in the View each row will
>>>>>>>> have 3
>>>>>>>> drop downs and 1 textbox to take input from user
>>>>>>>> there can be minimum 1 row. I am passing all the control names thru
>>>>>>>> ajax function
>>>>>>>>
>>>>>>>> View
>>>>>>>> =======
>>>>>>>> <script>
>>>>>>>> /* jquery that builds html form written here */
>>>>>>>>
>>>>>>>> ajax('{{=URL('insert_data')}}',['opt1','opt2','opt3','txtt1'],'target');
>>>>>>>>
>>>>>>>> // opt1, opt2 and opt3 are dropdown control names and txt1 is the name
>>>>>>>> if
>>>>>>>> textbox control all are html controls dynamically crated using jquery
>>>>>>>>
>>>>>>>> </script>
>>>>>>>> <div id=...></div>
>>>>>>>> <div id='target'></div>
>>>>>>>>
>>>>>>>> Controller
>>>>>>>> ==========
>>>>>>>> def insert_timesheet():
>>>>>>>>
>>>>>>>> orglist = request.vars.getlist("opt1")
>>>>>>>> response.flash = str(orgval)
>>>>>>>>
>>>>>>>> ##db.Table.insert(field1=opt1[0],.....)
>>>>>>>> return locals()
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thursday, June 2, 2016 at 7:34:04 PM UTC-6, Anthony wrote:
>>>>>>>>
>>>>>>>>> Please show some code and explain exactly what you want to do. To
>>>>>>>>> get a particular value from request.vars, just do
>>>>>>>>> request.vars.name_of_variable.
>>>>>>>>>
>>>>>>>>> Anthony
>>>>>>>>>
>>>>>>>>> On Thursday, June 2, 2016 at 8:07:13 PM UTC-4, [email protected]
>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> I am getting selected values from View to Controller using
>>>>>>>>>> request.vars
>>>>>>>>>>
>>>>>>>>>> I can see the values are coming as key value pair but not able to
>>>>>>>>>> figure out how to read each value and insert them in DB
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.