Thanks for the note.... I followed your instructions step by step
unfortunately even this solution doesn't work... the Action dictate
the display, I have NO control on the view...

#
#here is the view Register.html:
#

{{=form.custom.begin}}
 Full Name: <input class="string" id="auth_user_fullname"
name="fullname" type="text" value="" />
 Email: <input class="string" id="auth_user_email" name="email"
type="text" value="" />
 Password:  <input class="password" id="auth_user_password"
name="password" type="password" value="" />
 Verify Pwd: <input name="password_two" id="auth_user_password_2"
type="password" />
 <input type="submit" value="Submit" />
{{=form.custom.end}}

#
# Here is the action
#
def register():
    ...
    next = URL(r=request,f='index')
    return auth.register(onaccept=lambda form:
(updateInfo(form),response.headers.update({'web2py-component-
command':"document.location='%s'"%next})))

Whatever I enter in the view will not be display NOTHING, only the
registration form return from the action will be displayed... It's
like  the form from the action override everything html code I
enter...

I'm kind of desperate... If you have any other idea please let me
know... Or if you know a place where there is a working example please
send me a link... In the meantime I'll just drop this Auth API -
Ajax...

Thanks a lot for your help...
Yannick P.



On Mar 27, 8:36 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
> IF, as I assume, the register action is called via the
> {{=LOAD('controller','register')}} helper THEN
>
> there should be no ajax handling in register.html. It should just be:
>
> {{=form.custom.begin}}
>  Full Name: <input class="string" id="auth_user_fullname"
> name="fullname" type="text" value="" />
>  Email: <input class="string" id="auth_user_email" name="email"
> type="text" value="" />
>  Password:  <input class="password" id="auth_user_password"
> name="password" type="password" value="" />
>  Verify Pwd: <input name="password_two" id="auth_user_password_2"
> type="password" />
>  <input type="submit" value="Submit" />
> {{=form.custom.end}}
>
> Moreover all the INPUT fields in the custom form must have names as
> the corresponding fields in auth_user table and all required fields i
> auth_user MUST be present in the custom form.
>
> Moreover since you form is using
> <input class="string" id="auth_user_fullname" name="fullname"
> type="text" value="" />
> instead of {{=form.custom.widget.fullname}} (assuming you do have a
> field called fullname, which is not there in the default) you will
> have to handle manually all error reporting.
>
> On 27 Mar, 10:10, Yannick <ytchatch...@gmail.com> wrote:
>
>
>
> > Hello Massimo,  First thanks for you help... I'm stil not successful
> > with customizing the form for Auth Api using Ajax. Please let me know
> > what I'm doing wrong... Here is my view and controller (I did not
> > extend Layout.html)
>
> > #############
> > # Register.html
> > ##############
> > <html>
> > <script>
> >  $('#regForm').submit(function(){
> >     url = "{{=URL(r=request, f='register')}}";
> >     ids = [ 'auth_user_fullname', 'auth_user_email',
> > 'auth_user_password', 'auth_user_password_2' ];
> >          ajax(url, ids , 'registerMsg');
> >  });
>
> > // I took this from Web2py_ajax just for testing this Register
> > function ajax(u,s,t) {
> >   var query="";
> >   for(i=0; i<s.length; i++) {
> >      if(i>0) query=query+"&";
> >      query=query+encodeURIComponent(s[i])
> > +"="+encodeURIComponent(document.getElementById(s[i]).value);
> >   }
> >   jQuery.ajax({type: "POST", url: u, data: query, success:
> > function(msg) { if(t==':eval') eval(msg); else
> > document.getElementById(t).innerHTML=msg; } });}
>
> > </script>
>
> > <div id="registerMsg"> </div>
> > <div>
> > <form action="" id="regForm" enctype="multipart/form-data"
> > method="post">
> >  Full Name: <input class="string" id="auth_user_fullname"
> > name="fullname" type="text" value="" />
> >  Email: <input class="string" id="auth_user_email" name="email"
> > type="text" value="" />
> >  Password:  <input class="password" id="auth_user_password"
> > name="password" type="password" value="" />
> >  Verify Pwd: <input name="password_two" id="auth_user_password_2"
> > type="password" />
> >  <input type="submit" value="Submit" />
> > </form>
> > </div>
>
> > </html>
>
> > ##############
> > # Controller
> > ##############
>
> > def register():
> >     auth.settings.table_user.last_name.writable=False
> >     auth.settings.table_user.last_name.readable=False
>
> >     next = URL(r=request,f='index')
> >     return auth.register(onaccept=lambda form:
> > (updateInfo(form),response.headers.update({'web2py-component-
> > command':"document.location='%s'"%next})))
>
> > #########################
>
> > When doing this my view has no control on the display, it's like the
> > form return from the register Action overwritte everything... Can you
> > please let me know when I'm wrong here...
> > Thanks,
> > 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.

Reply via email to