IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

formulaire +select +boucle


Sujet :

Ruby on Rails

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 32
    Points : 23
    Points
    23
    Par défaut formulaire +select +boucle
    Bonjour,

    j'ai un soucis je voudrais faire un simple formulaire, avec l'un des champs qui serait un select.
    Ror 2.0

    j'ai dans mon controller ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
      def new
        @programmes = Programme.find(:all, :select => :nom)
        @compte = Compte.new
        $project = params[:project_id]
        respond_to do |format|
          format.html # new.html.erb
          format.xml  { render :xml => @compte }
        end
      end
    Et dans la view ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <% form_for(@compte) do |f| %>
      <p>
        <b>Project</b><br />
        <%= f.text_field :project_id , "value" => $project %>
      </p>
      <p>
        <b>Programme</b><br />
        <%= f.select :programme, for programme in @programmes do programme.nom end %>
      </p>
     
      <p>
        <%= f.submit "Create" %>
      </p>
    <% end %>
    La table Programme contient pour le moment 2 éléments
    Pro1 et Pro2
    donc je voudrais obtenir au niveau de ma view un select avec
    <option>Pro1</option><option>Pro2</option>

    Mais ça ne fonctionne pas j'obtient ceci :
    #&lt;Programme:0x41253b54&gt;

    J'ai essayé en faisant la boucle dans mon controller, mais à ce moment je ne récupère que la dernière valeur Pro2.

    Comment dois-je faire?

    Merci.

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    Salut,

    select attends un tableau dont les élements sont des couples (label, valeur).
    Ceci serait plus correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%= f.select :programme, @programmes.collect { |p| [p.nom, p.id] } %>
    Toute la documentation Ruby on Rails : gotapi.com/rubyrails
    Mes articles :
    > HAML : langage de template pour Ruby on Rails

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup.

    Fabien

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 64
    Points : 49
    Points
    49
    Par défaut
    Bonjour, je me permet de relancer la conversation, en demandant comment je veux faire si je veux faire une boucle de 0 a 50 avec un champ select.
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%= select('etage','id', for i=0;i<50;i++ do [i + 'etages', i] end %>
    Bon j'avoue que mon code est bizarre mais ce que je voudrai comme résultat c'est a peu pres ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <select name="etage">
       <option value="0">0 etage</>
       <option value="1">1 etage</>
       ...
      <option value="50">50 etage</>
    </select>
    Ps: avec un petit pluralize a étage ca le ferait encore mieux
    Merci

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 64
    Points : 49
    Points
    49
    Par défaut
    je suis sur une piste mais cela ne fonctionne pas encore. Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select("etages", "id", 50.times{ |i| ['i','i'] })

  6. #6
    Membre actif

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 171
    Points : 218
    Points
    218
    Par défaut
    le select attend un tableau de clé valeurs.

    Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (1..50).collect { |i| ["#{i} etage(s)", i]}
    au lieu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    50.times{ |i| ['i','i'] }

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 64
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par Aurelpitiless Voir le message
    le select attend un tableau de clé valeurs.

    Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (1..50).collect { |i| ["#{i} etage(s)", i]}
    au lieu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    50.times{ |i| ['i','i'] }
    Ca fonctionne nickel merci !

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 64
    Points : 49
    Points
    49
    Par défaut
    Pour ce que ca interesse, voici le code d'un select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <% form_for @announcement do |f| %>
      <p>
         <%= f.label :floor %><br />
         <%= f.select(:floor, (1..50).collect { |i| ["#{i} floor", i]} ) %> 
      </p>
    <% end %>

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 64
    Points : 49
    Points
    49
    Par défaut
    Bon la je suis super chaud alors un petit tips pour un select sur un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    helpers/application_helper.rb
    def les_furnished
          [[ "Jason Johnson", 1], ["Trey Piepmeier", 2], ["Royall", 3]] 
      end
    
    
    view/application/application_helper.rb
    <% form_for @announcement do |f| %>
       <%= f.select(:furnished, les_furnished.collect {|c| [ c.first, c.last ] } ) %>
    <% end %>

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 64
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par tombabibel Voir le message
    Pour ceux que ca interesse, voici le code d'un select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <% form_for @announcement do |f| %>
      <p>
         <%= f.label :floor %><br />
         <%= f.select(:floor, (1..50).collect { |i| ["#{i} floor", i]} ) %> 
      </p>
    <% end %>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 16/04/2009, 10h39
  2. [javascript - formulaire] select avec grand nombre d'enregistrements
    Par mussara dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/02/2007, 14h20
  3. Réponses: 7
    Dernier message: 05/01/2007, 12h24
  4. pb formulaire Select multiple
    Par kamalkam dans le forum ASP
    Réponses: 6
    Dernier message: 15/06/2006, 09h41
  5. récupérer le nom d'une valeur d'un formulaire select
    Par kenny49 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 14/06/2006, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo