I think something else must be interfering with the session formkeys. I would need to look at the complete action and view.
On Mar 25, 7:27 pm, Yannick <ytchatch...@gmail.com> wrote: > Thanks for the note... But I tried it, I don't have the error anymore > but the data is not saved in the DB... I run in debug mode and put and > break point in my action "def register():" and I notice that the form > validation is not successful in the method "register()" of the Class > Auth() of "Tools.py"... I have no clue why it fails... The same value > works fine (recorded in DB) without the AJAX... > > If you have any hint please let me know... I search a lot in the > threads of this Web2py group and I can't find an example of how to > used Auth Api with Ajax... > > Yannick P. > > On Mar 25, 1:19 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > One more try > > > def register(): > > next = URL(r=request,f='index') > > return auth.register(onaccept=lambda > > form:response.headers.update({'web2py-component- > > command':"document.location='%s'"%next})) > > > On Mar 25, 11:58 am, Yannick <ytchatch...@gmail.com> wrote: > > > > Hello thanks Massimo for the note... But I can't make it work... the > > > change_password() doesn't change the value in the DB... So I tried > > > other function just to test like "register()" and in this case i even > > > have an error message saying "TypeError: list objects are > > > unhashable"... I really don't know what I'm doing wrong up here... > > > Below it's the controller and view... Please let me know if you have > > > any idea... > > > > ################# > > > #View "index.html" > > > ################# > > > ..... > > > ..... > > > {{=LOAD('default','register',ajax_trap=True)}} > > > ..... > > > ..... > > > ################### > > > #Controller: "default.py" > > > ################### > > > def register(): > > > next = URL(r=request,f='index') > > > return auth.register(onaccept=lambda form: > > > response.headers.update({['web2py-component- > > > command']:"document.location='%s'"%next})) > > > > def otherAction(): > > > ..... > > > ..... > > > return dict(..........) > > > > def index(): > > > return (register = register(), otherAction=otherAction()) > > > > ######################### > > > # Here is the error message > > > ######################## > > > Traceback (most recent call last): > > > File "gluon/restricted.py", line 173, in restricted > > > File "C:/Documents and Settings/YannickT/web2py/applications/events/ > > > controllers/default.py", line 70, in <module> > > > File "gluon/globals.py", line 96, in <lambda> > > > File "C:/Documents and Settings/YannickT/web2py/applications/events/ > > > controllers/default.py", line 27, in register > > > File "gluon/tools.py", line 1271, in register > > > File "C:/Documents and Settings/YannickT/web2py/applications/events/ > > > controllers/default.py", line 27, in <lambda> > > > TypeError: list objects are unhashable > > > > Thanks for your help, > > > Yannick P. > > > > On Mar 24, 10:17 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > My bad > > > > > auth.change_password(onaccept=lambda form: > > > > response.headers.update({'web2py- > > > > component-command']:"document.location='%s'"%next})) > > > > > On Mar 24, 8:21 pm, Yannick <ytchatch...@gmail.com> wrote: > > > > > > Sorry but I have a lot of syntax error in the action: > > > > > > auth.change_password(onaccept=lambda form: response.headers['web2py- > > > > > component-command']="document.location='%s'"%next)) > > > > > > I don't seems to see why... Please let me know if you see it... > > > > > Thanks, > > > > > > On Mar 24, 2:00 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > > > ################################################### > > > > > > <script> > > > > > > $("#pwdChangeForm").submit(function(){ > > > > > > url={{=URL(r=requet, f="changePwd")}}; > > > > > > ids = ['currentpwd', 'pwd1', 'pwd2']; > > > > > > ajax(url, ids, 'confirmationMsg'); # This is the Ajax method > > > > > > that > > > > > > is coming with Web2py > > > > > > return false; > > > > > > > }); > > > > > > > </script> > > > > > > > In view: > > > > > > {{=LOAD('defualt','changePwd',ajax_trap=True)}} > > > > > > > ###################################### > > > > > > # Action: (Here I want to use the Auth method named > > > > > > change_password. ) > > > > > > ############################## > > > > > > def changePwd: > > > > > > next = URL(r=request,f='index') > > > > > > return auth.change_password(onaccept=lambda form:\ > > > > > > response.headers['web2py-component- > > > > > > command'="document.location='%s'" % next) > > > > > > > On Mar 24, 12:22 pm, Yannick <ytchatch...@gmail.com> wrote: > > > > > > > > Ok here is a view form to change user password: > > > > > > > ################################################### > > > > > > > <script> > > > > > > > $("#pwdChangeForm").submit(function(){ > > > > > > > url={{=URL(r=requet, f="changePwd")}}; > > > > > > > ids = ['currentpwd', 'pwd1', 'pwd2']; > > > > > > > ajax(url, ids, 'confirmationMsg'); # This is the Ajax method > > > > > > > that > > > > > > > is coming with Web2py > > > > > > > return false;}); > > > > > > > > </script> > > > > > > > > <div id="confirmationMsg"></div> > > > > > > > <form id="pwdChangeForm" method="post"> > > > > > > > Current password: <input type="password" id="currentpwd" > > > > > > > name="currentpassword"> > > > > > > > new password: <input type="password" id="pwd1" > > > > > > > name="password1"> > > > > > > > Old password: <input type="password" id="pwd2" > > > > > > > name="password2"> > > > > > > > <input type="submit" value="Submit"> > > > > > > > </form> > > > > > > > ###################################### > > > > > > > # Action: (Here I want to use the Auth method named > > > > > > > change_password. ) > > > > > > > ############################## > > > > > > > def changePwd: > > > > > > > return auth.change_password() > > > > > > > > So basically from the action I wanted to be able to know when the > > > > > > > form > > > > > > > is validated and return a confirmation that will be display > > > > > > > through > > > > > > > AJAX. I hope you understand what I mean here... Instead of > > > > > > > returning a > > > > > > > form, I want to return a string that represent a success or an > > > > > > > Error > > > > > > > message... How can I do that without the need to create my how > > > > > > > code to > > > > > > > change the password . Thanks! > > > > > > > > Yannick P. > > > > > > > > On Mar 24, 12:11 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > > > > > show us your action and explan how you want it to behave in > > > > > > > > details, > > > > > > > > and I can post an example. > > > > > > > > > On Mar 24, 11:06 am, Yannick <ytchatch...@gmail.com> wrote: > > > > > > > > > > Sorry I really don't understand... I have to code my own Auth > > > > > > > > > function > > > > > > > > > like "register(), login() etc..." it that what you meant ? > > > > > > > > > > Yes I know I have to create my own action but I wanted to > > > > > > > > > re-use the > > > > > > > > > Auth Api function by calling them inside my action... > > > > > > > > > So basically what you are saying is that i can't do it that > > > > > > > > > way ? > > > > > > > > > > Please let me know if I'm missing something here... > > > > > > > > > > Thanks a lot, > > > > > > > > > Yannick P. > > > > > > > > > On Mar 24, 11:16 am, mdipierro <mdipie...@cs.depaul.edu> > > > > > > > > > wrote: > > > > > > > > > > > You should make your own action and use {{=LOAD(..)}} > > > > > > > > > > > On Mar 24, 9:32 am, Yannick <ytchatch...@gmail.com> wrote: > > > > > > > > > > > > Hello mate, > > > > > > > > > > > This can be an easy question but I don't know how to used > > > > > > > > > > > the Web2py > > > > > > > > > > > "Ajax (u,s,t)" function to call build-in Web2py > > > > > > > > > > > Authentication API. > > > > > > > > > > > It's there any example ?... > > > > > > > > > > > > There is a cool example using JDiv: > > > > > > > > > > > def register(): > > > > > > > > > > > return auth.register(onaccept=lambda form: > > > > > > > > > > > jDiv.flash('try > > > > > > > > > > > login')) > > > > > > > > > > > > This is cool BUT I DON'T want to use jDiv... > > > > > > > > > > > How can I do the same without using JDIV... But instead i > > > > > > > > > > > want to use > > > > > > > > > > > AJAX(u,s,t){} function just like any other form that use > > > > > > > > > > > Ajax function > > > > > > > > > > > to send value ( The only difference here is the fact that > > > > > > > > > > > I'll send > > > > > > > > > > > value to already build Auth API like auth.register(), > > > > > > > > > > > auth.password_change(), auth.login() etc... ) > > > > > > > > > > > > Please let me know if you have any hints. > > > > > > > > > > > > Yannick P. -- You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web...@googlegroups.com. To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/web2py?hl=en.