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 :

Checkbox dans une liste d'objets


Sujet :

Ruby on Rails

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 171
    Points : 91
    Points
    91
    Par défaut Checkbox dans une liste d'objets
    Salut,

    J'ai un besoin qui, à mon avis, doit être assez courant : j'ai une liste d'objets (telle que générée par le scaffold) et je voudrais sur cette même page pouvoir associer une checkbox à chacun des objets, pour pouvoir modifier un de leur attribut booléen.

    Concrétement, j'ai ma page de liste des produits, avec l'objet @produits (créé avec le Pagniator) qui contient tous mes produits.

    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
    16
    17
    18
    19
    <h1>Liste des produits</h1> 
    <table> 
    <tr> 
    <% for column in Product.content_columns %> 
    <th><%= column.human_name %></th> 
    <% end %> 
    </tr> 
    <% for product in @products %> 
    <tr> 
    <% for column in Product.content_columns %> 
    <td><%=h product.send(column.name) %></td> 
    <% end %> 
    <td><%= link_to 'Voir', :action => 'show', :id => product %></td> 
    <td><%= link_to 'Modifier', :action => 'edit', :id => product %></td> 
    <td><%= link_to 'Détruire', {:action => 'destroy', :id => product}, 
    :confirm => "Etes-vous sûr?" %></td> 
    </tr> 
    <% end %> 
    </table>
    Je voudrais ajouter une colonne, avec une checkbok pour chaque produit afin de pouvoir modifier leur attribut "valide". Seulement, je ne peux pas écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><%= check_box('product', 'valide', {}, "yes", "no") %></td>
    car il générera la même checkbox pour tous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><input id="product_valide" name="devis_item[valide_quotatis]" type="checkbox" value="yes" /></td>
    Vous voyez comment je peux faire un truc pareil? Et après, une fois mon formulaire réalisé, comment je peux gérer la modification de plusieurs objets dans une action?

    Merci d'avance pour votre aide, j'en aurai bien besoin!

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    Necessaire :
    1) Il ne faut pas que 2 check_box aient le meme id
    2) Il faut que chaque check_box corresponde à son objet

    Solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%= check_box('product', 'valide', {:id => "cb_#{product.id}"}, "yes", "no") %>
    Et après, une fois mon formulaire réalisé, comment je peux gérer la modification de plusieurs objets dans une action?
    L'action "update" semble correspondre à ce besoin.
    En Ajax, tu lui envoies en parametre l'id du produit que tu veux modifier (product.id)
    Sinon, de manière classique, tu postes le formulaire.

Discussions similaires

  1. Chercher un objet dans une liste d'objet
    Par Axiome dans le forum Windows Forms
    Réponses: 5
    Dernier message: 10/10/2008, 09h43
  2. recherche par attribut dans une liste d'objet
    Par Jacobian dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 28/05/2008, 21h11
  3. Réponses: 3
    Dernier message: 14/05/2008, 11h58
  4. Réponses: 7
    Dernier message: 08/08/2007, 13h04
  5. Checkbox dans une list ?
    Par walou dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 31/07/2007, 02h26

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