Bonjour,
Je travaille avec Ruby on rails.
Dans mon application j'ai un formulaire ou je demande de rentrer
l'adresse e-mail. Cependant j'ai besoin de donner la possibilité de
rentrer plusieurs adresses e-mail sans restriction de nombre. Donc j'ai
créé un bouton qui a base d'AJAX ajoute un nouveau champ pour rentrer
une nouvelle adresse. Mon problème est que si l'une des adresses est
erronée j'ai un message d'erreur (celui générée automatiquement par
rails après mon Validates_on_format dans mon modèle) mais sur la page
qui s'affiche il n'y a qu'un champ d'adresse même s'il y en avait
plusieurs avant. De plus ce champ est vide alors que les autres champs
(nom, numéro de téléphone...) reste avec les valeurs qui avaient été
rentré avant l'erreur de validation.
Mon code:
dans mon formulaire.rhtml j'ai:
<p><label for="nom"><B>Nom</B></label><br/>
<%= text_field 'profil', 'nom'  %></p>

<p><label for="num_telephone"><B>Numéro de Téléphone</B></label><br/>
<%= text_area 'profil', 'téléphone'  %></p>

<p><label for="profil_email"><B>Email</B></label><br/>
  <TD><input type='text' name='email_0' size="30" %>'/></TD>
  <TD><%=link_to_remote(  "Ajouter une adresse email",
        :update=>"extra_emails",
        :url=>{:action=>"ajout_emails"},
        :position => "before")
      %>
  </TD>
</p>

<div id="extra_emails">
  <% render  :partial => "ajout_emails" %>
</div>
Dans mon controller:
def ajout_emails
    session[:nombre_emails] = session[:nombre_emails]?
session[:nombre_emails]+1 : 1
    @nombre_emails=session[:nombre_emails]
    render  :partial => "ajout_emails"
  end

  def new
    session[:nombre_emails]=nil
  end

  def create
    @profile = Profile.new(:title=>params[:profile][:nom],
                     :description=>params[:profile][:telephone]
    )
    number_of_emails = session[:number_of_emails]?
session[:number_of_emails].to_i : 0
    for i in 0..nombre_emails
      @profile.source<<Source.new(:email=>params['email_'+i.to_s])
    end
    if @idea.save
      flash[:notice] = 'Profile bien sauve.'
      redirect_to :action => 'menu'
    else
      session[:nombre_emails]=0
      render :action => 'new'
    end
  end
dans mon _ajout_email.rhtml:
<p>
  <TD><input type='text' name='email_<%= @number_of_emails %>' size="30"
></TD>
  <TD><%=link_to_remote(  "Ajouter une adresse email",
        :update=>"extra_emails",
        :url=>{:action=>"ajout_emails"},
        :position => "before")
      %>
  </TD>
</p>
Merci pour votre aide
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---

Répondre à