I had similar problems to you, but I found that it didn't work to put dummy data like that in the ajax call ... so here's my ajax call
function save(id) { var data_in = {}; data_in['item_id'] = id; data_in['id'] = other_uid; data_in['name'] = other_name; $$.post("/save", data_in, function(data_out) { $$("#result").html(data_out); }); } Build the structure in javascript, then just pass it in "data_in" variable. jQuery knows how to send it. Then in the python: input = web.input() cursor.execute("SELECT * FROM users WHERE id = '" + input['id'] + "'") cursor.execute("INSERT INTO users(id, name) VALUES (%s, %s)", (user_id, input['name'])) cursor.execute("INSERT INTO user_goal_association(user_id, goal_id, completed) VALUES (%s, %s, now())", (user_id, input['goal_id'])) I can access the structure with input[fieldname] Good tool for debugging is to throw this in just before you have the problem import pdb; pdb.set_trace() Then look at the console where your server is running and you can poke around http://docs.python.org/library/pdb.html On Sat, Apr 23, 2011 at 4:11 PM, lefou <haneli...@gmail.com> wrote: > I have some client side javascript posting data to my web.py server > that looks like this: > > $.ajax({ > type : 'POST', > url : '/graph/', > dataType : 'json', > data : {nodes: [{pie:1, cake:2}]}, //temporary data > for testing output > success : function(data){ > console.log(data); > } > }); > > When my server receives the POST, and I have some code that looks > something like this: > > class graph: > def POST(self): > graph1 = web.data() > graph2 = web.input() > print graph1 > print graph2 > > Then my output looks like > > graph1 : nodes%5B0%5D%5Bpie%5D=1&nodes%5B0%5D%5Bcake%5D=2 > graph2: <Storage {'nodes[0][cake]': u'2', 'nodes': {}, 'nodes[0] > [pie]': u'1'}> > > What I want to happen of course is for the data posted to be > deserialized so that my python dictionary has the same structure as it > did in javascript. However, web.input seems to flatten the whole > thing, and web.data encodes it in some form that I can't do anything > with. Now I'm sure I'm bastardizing some web standards by trying to > do what I'm doing, but is there anything I can do to keep web.py from > flattening/encoding it funky? Or another way to get the result I > want? > > Thank you. > > -- > You received this message because you are subscribed to the Google Groups > "web.py" group. > To post to this group, send email to webpy@googlegroups.com. > To unsubscribe from this group, send email to > webpy+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/webpy?hl=en. > > -- http://www.rubygeek.com - my blog http://www.DevChix.com - boys can't have all the fun -- You received this message because you are subscribed to the Google Groups "web.py" group. To post to this group, send email to webpy@googlegroups.com. To unsubscribe from this group, send email to webpy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/webpy?hl=en.