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 :

Réafficher des checkbox après validation avec un foreach [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut Réafficher des checkbox après validation avec un foreach
    Bonjour,

    J'ai un formulaire qui envoie vers une page de validation. Si aucune erreur le formulaire est envoyé par mail. Si erreurs, je ré affiche le formulaire ainsi que toutes les données tapées.

    Mais j'ai un problème avec les chekbox, impossible de réafficher le formulaire avec les checkbox sélectionnées (pourtant je n'ai aucune souci avec les cases à cochés et la même méthode) :

    Variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $array_checkbox  = array(
        'pomme',
        'poire',
        'raisin'
    );
     
    $checkbox_fruits= isset($_POST['checkbox_fruits']) ? $_POST['checkbox_fruits'] : '';
    La boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
     
    foreach($array_checkbox as $key=>$val) {
    	$isselected = '';
    	$isselected = $val == $checkbox_fruits ? 'checked="checked"' : '';
    echo ( '<input type="checkbox" name="checkbox_fruits[]" value="'.$val.'" '.$isselected.' />' );
     
    }
    ?>
    Qui peut m'aider ?

    Merci

  2. #2
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    Salut,

    C'est normal, $_POST['checkbox_fruits'] est un tableau, essaye comme ca :

    Variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $array_checkbox  = array(
        'pomme',
        'poire',
        'raisin'
    );
     
    $checkbox_fruits = array();
    if (isset($_POST['checkbox_fruits'])) {
        foreach ($_POST['checkbox_fruits'] as $key => $val) {
            $checkbox_fruits[] = $val;
        }
    }
    Boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach ($array_checkbox as $key => $val) {
        $isselected = '';
        if (in_array($val, $checkbox_fruits)) {
            $isselected = 'checked="checked"';
        }
        echo '<input type="checkbox" name="checkbox_fruits[]" value="'.$val.'" '.$isselected.' />';
    }


    Les boutons et existent, servez-vous en

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    j'ai utilisé ton code mais cela ne fonctionne toujours pas..

    j'ai ajouté sur la page du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php print_r($checkbox_fruits) ?><br>
    <?php print_r($_POST['checkbox_fruits']) ?><br>
    Après validation il me donne :

    Normalement, il ne devrait pas me donner les checkbox sélectionnées ?

  4. #4
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    Moi j'ai testé ca en local :

    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
    20
    21
    22
    23
    24
    25
     
    $array_checkbox  = array(
        'pomme',
        'poire',
        'raisin'
    );
     
    $checkbox_fruits = array();
    if (isset($_POST['checkbox_fruits'])) {
        foreach ($_POST['checkbox_fruits'] as $key => $val) {
            $checkbox_fruits[] = $val;
        }
    }
     
    echo '<form method="post">';
     
    foreach ($array_checkbox as $key => $val) {
    	$isselected = '';
    	if (in_array($val, $checkbox_fruits)) {
            $isselected = 'checked="checked"';
        }
        echo '<input type="checkbox" name="checkbox_fruits[]" value="'.$val.'" '.$isselected.' />';
    }
     
    echo '<input type="submit" /></form>';
    Et après validation il me coche bien les bon checkbox.

    Tu peut mettre ton code complet ?
    Y'a peut être une petite erreur toute bête


    Les boutons et existent, servez-vous en

  5. #5
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    le plus simple
    <input type='checkbox' name='pomme' value='1'><br/>
    <input type='checkbox' name='poire' value='1'><br/>
    <input type='checkbox' name='raisin' value='1'><br/>

    tester l’existence de la valeur
    $_POST['nom_du_fruit']
    si
    elle existe "checked"
    sinon
    pas "checked"
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    J'ai trouvé l'erreur ...

    Les variables sont dans un document séparé et sont inclues à chaque chargement/validation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $checkbox_fruits = array();
    Qui se trouve avant la boucle écrasait systématiquement le résultat. J'ai supprimé la ligne et maintenant cela fonctionne.

    Merci à vous

  7. #7
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    De rien, n'oublie pas de passer le sujet en résolu


    Les boutons et existent, servez-vous en

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/04/2015, 11h57
  2. Réponses: 11
    Dernier message: 26/12/2009, 17h29
  3. Garder la selection des checkbox apres submit
    Par etoileDesNeiges dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/06/2007, 13h39
  4. [Tableaux] Problème de foreach avec des checkboxes
    Par nanor21 dans le forum Langage
    Réponses: 10
    Dernier message: 15/05/2006, 01h04

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