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

PHP & Base de données Discussion :

Problème tableau php [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Problème tableau php
    Bonjour !

    Je suis face à un problème de "cases cochées", j'ai généré un tableau avec des cases allant de 1 à 45 avec une boucle FOR, et dans chacune de ces cases, il y a un "checkbox" mais lorsque je coche mes cases et puis lorsque j'appuie sur Submit, les cases cochées disparaissent.. Veuillez m'aidé s'il vous plaît !

    Merci à tous !

  2. #2
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    seules les checkboxes validées sont transmises normalement, c'est à dire celle qui sont cochées...

    quand tu as des doutes sur ce qui est envoyé fais un:
    pour voir ce qui est retourné et comment c'est organisé...

    méfie toi donc des indices générés pour ton tableau...

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Normal, quand tu fait un submit, ça envoie le formulaire et au retour ça raffraichi la page et donc tes case ne sont plus cochées.
    Il faut donc réafficher les cases cochées en fonctions du résultat du post. Sur le principe tu peux tester :
    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
    <?php
    //juste pour visualiser le tableau
    if (isset($_POST['ok']))
    {
    echo '<pre>';
    print_r($_POST['ok']);
    echo '</pre>';
    }
    ?>
     
    <form action="" method="post">
    <?php for($i=1 ; $i<=5 ; $i++)
    {?>
    	<input type="checkbox" name="ok[]" value="<?php echo $i?>" <?php if(isset($_POST['ok']) && in_array($i,$_POST['ok'])) echo 'checked="checked"'?>><?php echo $i?><br />
     <?php } ?>
     <input type = "submit" value = "submit" />
    </form>
    C'est le checked="checked" qui coche le checkbox en fonction du résultat du post. Tu peux aussi enregistrer ton post dans une variable de session.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour, j'ai fait ce que tu me demande mais rien ne se passe, Lorsque je clique sur JOUER il n'y a rien qui apparait Je crois que je me suis trompé dans le code ..


    Pour le formulaire ; je n'ai pas très bien comprit où est mon erreur..


    Pour la validation du formulaire, j'ai rajouté ;

    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
    <?php
    $tm="";
     
    if(isset($_POST['ok']) AND in_array($i, $_POST['ok'])){
    echo 'checked="checked"';
    echo $i;
    $tm=$_POST["ok"];
     
    echo "Les chiffres choisit sont : <br/>\n";
     
    for ($i=0; $i <count($tm); $i++)
    {
    echo $tm[$i].",";
     
    }
    }
     
    ?>
    J'obtient ceci pour la visualisation du tableau :

    Array
    (
    [0] => 24
    [1] => 25
    [2] => 33
    )

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    allez parce que c'est le week-end, une piste clé en main :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
     
    $rows     = array();
    $selected = array();
    $message  = '';
     
    // on s'assure que les données récupérées sont correctes
    if (( ! empty($_POST['ok'])) && is_array($_POST['ok'])) {
        $selected = array_filter($_POST['ok'], function($p) { return (bool)intval($p); });
        if ( ! empty($selected)) {
            sort($selected);
            $message  = 'Les chiffres choisis sont : '.implode(', ', $selected);
            $selected = array_flip($selected);
        }
    }
     
    for($i = 1 ; $i <= 45 ; ++$i) {
        // ligne
        $rows[] = '<tr>';
        // colonnes
        for($j = 1 ; $j <= 9 ; ++$j) {
            $checked = (isset($selected[$i])) ? ' checked="checked" ' : '';
            $rows[]  =
    <<<HTML
    <td align="center"><input type="checkbox" {$checked} name="ok[]" value="{$i}">{$i}</td>
    HTML;
            ++$i;
        }
        $rows[] = '</tr>';
    }
    ?>
    <html>
    <body>
    <form action="dvp.php" method="post">
        <table border="3" width="80" cellspacing="10" bordercolor="blue" bgcolor="orange" colspan="9">
            <?php echo implode("\n", $rows); ?>
        </table>
        <input type="submit" value="Jouer">
    </form>
    <?php echo $message; ?>
    </body>
    </html>

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour, je n'ai toujours pas résolu mon problême svp guidé moi parce queje suis encore débutant en php. Merci

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Tu es trop vague dans ta demande, on ne peut pas t'aider sans plus de précisions...
    Par exemple as-tu tester le code que je t'ai donné dans une page séparée ?
    Si non fais-le pour comprendre le fonctionnement. Et si cela ne te convient pas dis-nous précisément ce que tu veux exactement.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Je suis face à un problème de checkboxs décoché.. Je m'explique, lorsque je choisit les chiffres (donc je coche les cases correspondantes) et finalement lorsque j'appuie sur le bouton submit .. Les case cochés se décoche... Il faut faire quoi pour qu'ils ne se décochent pas ? Je n'y arrive pas

  9. #9
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    comme ça t'a été dit:
    • récupérer les éventuelles valeurs envoyées par un submit précédent en début de page...
    • puis t'en servir pour remplir pour remplir le formulaire comme ils t'ont montré...

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Citation Envoyé par mmmppp1903 Voir le message
    Je suis face à un problème de checkboxs décoché.. Je m'explique, lorsque je choisit les chiffres (donc je coche les cases correspondantes) et finalement lorsque j'appuie sur le bouton submit .. Les case cochés se décoche... Il faut faire quoi pour qu'ils ne se décochent pas ? Je n'y arrive pas
    Je t'ai déjà montré un code fonctionnel qui te montre comment ça marche. Si tu ne veux pas faire l'effort de tester le code et de comprendre comment ça marche, on peut pas faire grand chose pour toi. Le minimum serait de dire ce que tu ne comprend pas... et pas dire que ça marche pas puisque le code donné en exemple fonctionne comme attendu.

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    J'ai reprit ton code et je l'es encodé comme ceci mais j'ai une erreur :
    [quote]Parse error: syntax error, unexpected T_IF, expecting ',' or ';' in C:\xampp\htdocs\med\pads.php on line 20[/quote

  12. #12
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,
    avec cette syntaxe ça devrait aller mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td align="center"/><input type="checkbox" name="ok[]" value="'.$i.'" '.((isset($_POST['ok']) && in_array($i,$_POST['ok'])) ? 'checked="checked"' : '').'/>'.$i.'<td/>';
    Une petite question subsidiaire : as-tu essayé mon code précédent parce qu'il résout ton problème.

  13. #13
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Une petite question subsidiaire : as-tu essayé mon code précédent parce qu'il résout ton problème.
    Et oui c'est ça qui est déroutant. On est déjà deux à avoir donné un exemple fonctionnel, dont toi le code complet, donc on sait plus trop quoi répondre après ça.

    Cela dit il est vrai que ton code est un concentré de savoir faire^^, peut-être un peu déroutant pour un débutant. Au passage je mets donc un lien sur la syntaxe heredoc, en cas de besoin, car au début on sait pas nécessairement où chercher pour comprendre cette syntaxe quand on la voit dans un code.

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Merci mon probleme est résolu !

    Merci pour la correction de mon "echo" sa fonctionne !

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

Discussions similaires

  1. Problème tableau php xml
    Par kirua99 dans le forum Langage
    Réponses: 2
    Dernier message: 28/05/2011, 15h30
  2. problème tableau php javascript
    Par eric204044 dans le forum Langages serveur
    Réponses: 0
    Dernier message: 01/07/2010, 21h26
  3. [SQL] problème de variable tableau PHP contenant les données d'une jointure SQL
    Par Schpountz42 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/02/2007, 05h59
  4. Réponses: 5
    Dernier message: 02/08/2006, 17h05
  5. [MySQL] Problème affichage tableau PHP avec données SQL
    Par akalaan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/04/2006, 14h34

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