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

Langage PHP Discussion :

Traitement des checkbox en tableau [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut Traitement des checkbox en tableau
    Bonjour tout le monde,

    Je suis en stage en entreprise et je donne un coup de main a un collègue qui essaie de faire un formulaire html avec traitement et envoi du mail par php. J'ai bien fais mon formulaire et j'arrive a récupéré et envoyé correctement tous mes champs sauf mes checkbox. Je les ai codé comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT TYPE ="CHECKBOX" NAME="checkbox[]" VALUE="Bretagne"> Bretagne </br>
    Mais ensuite je ne sais comment les récupéré en php et comment faire pour les afficher dans mon mail.
    Si quelqu'un pourrait m'aider ca m'arrangerait car la je suis largé. Merci beaucoup

  2. #2
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut
    Salut,

    déjà :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="CHECKBOX" name="checkbox[]" value="Bretagne" /> Bretagne <br />

    Ensuite :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    foreach ($_POST['checkbox'] as $checkbox) {
    echo "$checbox a été coché<br />";
    }

    quand on met das crochets comme ça, ça renvoie un tableau accessible en PHP par $_POST
    Zend PHP Certified Engineer, Certifié Symfony2
    blog : blog.lepine.pro
    Secrétaire de l'AFUP (Association des Utilisateurs de PHP)

  3. #3
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    EN fait ce que j'aimerais c'est qu'il affiche dans la réponse recu par email le nom des valeurs qui ont été cochés dans le formulaire. Par exmple on coche Bretagne et dans ma réponse j'aimerais voir

    Nom :---
    Prénom : ----
    Régions : Bretagne

    J'arrive a récupéré le nom et tout mais pas les checkbox

    Comment pourrais je faire ?

  4. #4
    Membre éclairé
    Avatar de djayp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 295
    Points : 687
    Points
    687
    Par défaut
    Citation Envoyé par Vincinho Voir le message
    J'arrive a récupéré le nom et tout mais pas les checkbox

    Comment pourrais je faire ?
    Halleck vient de te donner le code à utiliser... Difficile de faire mieux !
    As-tu essayé ?
    A++

  5. #5
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    Bien sur que j'ai essayé.

    J'ai remis donc toutes mes checkbox ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="CHECKBOX" name="checkbox[]" value="Bretagne" /> Bretagne <br />
    et pour mon code php j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $nom = $_POST['nom'];
    $prenom = $_POST['prenom'];
    $checkbox = $_POST['checkbox[]'];
    $message = "Nom : $nom\n Prénom : $prenom\n Régions : $checkbox[]";
    mais du coup ca marche pas ca m'envoit un email avec le bon nom et prenom mais region : ARRAY.
    Ce que je veux c'est voir ce que contenait chaque valeur des cases qui ont été cochés

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut
    Bonjour,

    Je crois qu'il faut que tu parcours ton tableau pour en récupérer la valeur.

    C'est le code qui t'est donnée au dessus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach ($_POST['checkbox'] as $checkbox) {
    echo "$checbox a été coché<br />";
    }
    Je suis personnellement en train de réfléchir à une interface me permettant de récupérer les valeurs obtenus par la sélection de plusieurs checkbox.

    Je vais suivre ce post avec interet

    merci

    ++

  7. #7
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    Je suis conscient que ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($_POST['checkbox'] as $checkbox) {
    echo "$checbox a été coché<br />";
    }
    permet d'afficher chaque élément présent dans le tableau. Mon probleme c'est comment construire le $message ensuite.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut
    bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    foreach ($_POST['checkbox'] as $checkbox) 
    {
      $region=$checkbox;
    }
    et dans le message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $message = "Nom : $nom\n Prénom : $prenom\n Régions : $region";
    Cependant la une chose m'interpelle, l'utilisateur pourra cocher plusieurs régions. Est-ce que tu veux permettre à l'utilisateur d'en saisir plusieurs ?

    Si tu lui permet d'en afficher plusieurs il faudrait faire un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $region="";// j'initialise à vide pour pouvoir concaténer après
     
    foreach ($_POST['checkbox'] as $checkbox) 
    {
      $region.=",".$checkbox; // je concatène dans $region la liste des regions //cochées
    }
    Sinon si tu veux limiter la saisie à une seule région tu devrais utiliser des boutons radios.

    ++

  9. #9
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut
    Citation Envoyé par narutobaka Voir le message
    bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $region="";// j'initialise à vide pour pouvoir concaténer après
     
    foreach ($_POST['checkbox'] as $checkbox) 
    {
      $region.=",".$checkbox; // je concatène dans $region la liste des regions //cochées
    }
    Je dirai même plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // ici le foreach est inutile
    $region = implode(',', $_POST['checkbox'];
    la fonction implode rassemble les éléments d'un tableau est une chaine, concaténés ici par une virgule.

    Je te conseille de lire le Tutoriel pour les grands Débutants pressés, sinon tu vas souvent bloquer
    Zend PHP Certified Engineer, Certifié Symfony2
    blog : blog.lepine.pro
    Secrétaire de l'AFUP (Association des Utilisateurs de PHP)

  10. #10
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    Ca marche nickel. Je cherchais justement une méthode qui permette de concatener les variables issues d'un tableau. Je ne pense pas refaire de php a l'avenir donc je voulais pas trop me mettre dedans, je fais que du VB et du java.

    Sinon j'ai un soucis c'est que sous IE ca marche nickel mais sous FireFox pas complètement. Dans ce dernier, mes checkbox sont les unes a la suite des autres malgré mes <br /> et il n'envoit pas non plus les valeurs des checkbox dans le mail.

    Y'a t il une syntaxe différente pour que ca marche sous firefox ?

  11. #11
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    Finalement ca vient apparemment d'une mauvaise config de firefox de mon collègue pour le reste ca marche.

    Donc merci a ceux qui se dont penché sur mon cas.

    Bonne journée

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

Discussions similaires

  1. Mauvais affichage des checkbox dans un tableau
    Par Raiden1234 dans le forum Struts 2
    Réponses: 2
    Dernier message: 26/11/2012, 11h38
  2. Récupérer des checkbox dans un tableau
    Par franklinou dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 12/05/2007, 19h06
  3. [Tableaux] Traitement des valeurs d'une CheckBox
    Par Alex70 dans le forum Langage
    Réponses: 12
    Dernier message: 18/04/2007, 16h38
  4. Tableau avec des checkboxes
    Par ioiolodie dans le forum MFC
    Réponses: 4
    Dernier message: 19/10/2006, 22h00
  5. [C#] Tableau généré contenant des checkbox
    Par la_muraille dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/04/2005, 12h16

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