Ruby Forum Rails France > Validation formulaire Ajax + pop up

Posted by Alexandre Alex (pixel)
on 05.05.2008 10:53
Bonjour à tous,

Je commence depuis peu à coder en Ruby On Rails et je me heurte à pas
mal de problèmes dont celui-ci :

Je dispose d'un formulaire dans une fenêtre Dialog.info :
[CODE]function ouvreInscription() {

                var v1 = new Dialog.info({url: "window/add_user"},

                                  {className: "alphacube", width:540,
height:300 }

                                   );

}[/CODE]

Ma vue add_user qui renvoie vers la vue partielle _signup_form.rhtml ci
dessous:
[CODE] <div id='inscriptionp'>

<% remote_form_for :user, :url => { :action => 'add_user'},:update =>
"signup_form", :html => { :action => 'add_user', :method => 'post'} do
|f| -%>


          <div class='close'><img src='../images/false.png'
title='Fermer la fenetre' alt='Fermer la fenetre' class='close_bouton'
onclick='Windows.focusedWindow.hide();'/></div>

           <h1>Inscription<span id='chargement'
style='display:none;'><img
src='http://telice.univ-lille1.fr/images/wait.gif' alt='chargement'
title='chargement' /></span></h1><hr/>

           <div id='inscription' >

            <div id='inscription_table' >

           <ul class="signup" style:"list-style-type:none;">

            <li>Email : <%= f.text_field :email %><span
id="email_informations"><%= render
:partial=>'email_errors'%></span></li><br />

              <%= observe_field "user_email",

               :on => 'blur', # c'est à dire des que le champs perd le
focus

               :update => 'email_informations',

               :with=>"'email=' + value",

               :url=>{:action=>'check_mail', :only_path => false} %>



            <li>Pseudo : <%= f.text_field :pseudo %><span
id="pseudo_informations"><%= render
:partial=>'pseudo_errors'%></span></li><br />

              <%= observe_field "user_pseudo",

                :on => 'blur', # c'est à dire des que le champs perd le
focus

               :update => 'pseudo_informations',

               :with=>"'pseudo=' + value",

               :url=>{:action=>'check_account',  :only_path => false} %>



            <li>Mot de passe : <%= f.password_field :password %><span
id="password_informations"><%= render
:partial=>'password_errors'%></span></li><br />

              <%= observe_field "user_password",

                :on => 'blur', # c'est à dire des que le champs perd le
focus

               :update => 'password_informations',

               :with=>"'password=' + value",

               :url=>{:action=>'check_password', :only_path => false} %>



             <li>Confirmation : <%= f.password_field
:password_confirmation  %><span id="confirmation_informations"><%=
render :partial=>'confirmation_errors'%></span></li><br />

             <%= observe_field "user_password_confirmation",

                :on => 'blur', # c'est à dire des que le champs perd le
focus

               :update => 'confirmation_informations',

               :with=>"'confirmation=' + value" %>



            </ul>

     <%= submit_tag 'S\'inscrire' %>

            </div>

        </div>



    <% end %>

</div>[/CODE]


Voici mon controller :

[CODE]def add_user
        @user = UserFrontend.new(params[:user])
        if request.post? and @user.save
            flash.now[:notice] = "Vous etes enregistre."
            @user = UserFrontend.new
        end
    end[/CODE]


Un des problèmes réside dans la validation à la volée de ce formulaire ,
je m'explique. Lorsque je teste ce formulaire sur une page "normale"
tout va bien , dès lors que j'essaie à travers la pop-up je dois cliquer
une 1ere fois sur le bouton de validation pour recharger le pop-up et
ainsi la validation à la volée fonctionne..
J'aimerais qu'elle marche ds la 1ere fois comme sur une page "normale".

Second problème : toujours plus bizarre , j'ai beau appuyer sur le
bouton de validation un nouveau formulaire apparait mais rien ne
s'enregistre du tout dans la bdd avec le save , j'ai même essayé
d'enregistrer un seul champ rien à faire..
De plus lorsque je quitte le champ de confirmation du mot de passe mon
index se réaffiche à la suite dans mon pop-up alors que je ne demande
nul part de le réafficher ni-même d'y être redirigé..


Merci de m'avoir lu jusqu'au bout en espérant que vous pourrez m'aider
sur un de ces problèmes qui m'occupe depuis bien 1semaine et demi.

Bonne journée à vous :)