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 :

[Système] complément sur un tuto (formulaire + checkbox)


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 156
    Points : 102
    Points
    102
    Par défaut [Système] complément sur un tuto (formulaire + checkbox)
    bonjour,
    il s'agit de ce tuto.
    plus précisement de la partie traitant des checkboxs(un peu en dessous
    du milieu de la page).
    coment récupère-t-on l'ensemble des valeurs de toutes les checkboxs
    d'un formulaire, lorsqu'elles ont le même nom?
    j'ai cru que l'id pouvait faire la différence mais j'ai lu qu'il s'agissait
    d'autre chose.

  2. #2
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $var[] = $_{METHOD}['nom'];


    *{METHOD} _POST ou _GET


    Bien que je prefere mettre les "[]" dans le nom de la checkbox plutot qu'a la variable php

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 156
    Points : 102
    Points
    102
    Par défaut
    presque. quand je fais ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (isset($_POST['sup'])){
    $sup[] = $_POST['sup'];
    }
    j'ai ce retour là :
    Fatal error: [] operator not supported for strings in /home/www/script.php on line 8.
    la 8 c'est la 2nd sur le code ci dessus.
    mes checkbox s'appelle toutes sup et ont toutes une valeur différente.

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    Essaye cela

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     <INPUT TYPE="checkbox" NAME="qualites[]" VALUE="natation" CHECKED>Natation<BR>
    <INPUT TYPE="checkbox" NAME="qualites[]" VALUE="cyclisme">Cyclisme<BR>
    <INPUT TYPE="checkbox" NAME="qualites[]" VALUE="ski">Ski<BR>
    <INPUT TYPE="checkbox" NAME="qualites[]" VALUE="petanque" CHECKED>Petanque<BR>
    <INPUT TYPE="checkbox" NAME="qualites[]" VALUE="basket">Basket

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $var = $_POST['qualites'];

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 156
    Points : 102
    Points
    102
    Par défaut
    pas mieux. le $_POST['qualites'] n'existe pas.
    il a l'air d'avoir du mal avec les [].j'ai rajouter des echo partout
    mais rien ne s'affiche.

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Hmmmm

    As-tu au moins mis les balises form ?

    Parce qu'il ne suffit pas de mettre des checkbox.
    Petit exemple : La balise principale

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 156
    Points : 102
    Points
    102
    Par défaut
    oui quand même...

  8. #8
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    Post le code en question ce sera plus simple pour repondre

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 156
    Points : 102
    Points
    102
    Par défaut
    voila, un script rempli ma page en fonction de ce qu'il trouve en bd
    ça dans une boucle en fonction de msg_id:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo '<td style="height: 33px; width: 10%;">
    	  <input type="checkbox" name="supp" value="'.$msg_id.'"></td>';
    le tout dans la page est amenné par un include dans un tableau, ceci
    entre mes deux balise form.
    par ces checkboxs, le user peut supprimer des éléments afficher.

    évidement il y a un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" value="Supprimer">
    il est à noté que cet input est placé plus haut dans le tableau.

  10. #10
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Le code complet avec tous les éléments stp.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 156
    Points : 102
    Points
    102
    Par défaut
    tu l'auras voulu! le form d'abord:
    Code html : 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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    <form name="msg" action="msg_recu.php" method="post">
    <table style="text-align: center; width: 100%; height: 70%;" align="center" border="2" cellpadding="0" cellspacing="0">
      <tbody>
        <tr>
          <td colspan="1" rowspan="15">
           <table style="text-align: left; background-color: rgb(90, 145, 177); width: 120px; height: 146px;" align="left" border="1" cellpadding="2" cellspacing="2">
            <tbody>
              <tr>
                <td><a href="profil.php">Mon espace</a></td>
              </tr>
              <tr>
                <td><a href="messagerie.php">Ma messagerie</a></td>
              </tr>
              <tr>
                <td>Mes listes</td>
              </tr>
              <tr>
                <td>Mon abonnement</td>
              </tr>
              <tr>
                <td><a href="logout.php">Me d&eacute;connecter</a></td>
              </tr>
            </tbody>
           </table>
          </td>
          <td colspan="4" rowspan="1" style="height: 40px; width: 80%;" border="2" cellpadding="0" cellspacing="0"><big><big>VOTRE MESSAGERIE</big></big></td>
          <td colspan="1" rowspan="15">
          <table style="text-align: left; background-color: rgb(90, 145, 177); width: 120px; height: 146px;" align="right" border="1" cellpadding="2" cellspacing="2">
            <tbody>
              <tr>
                <td><a href="profil.php">Mon espace</a></td>
              </tr>
              <tr>
                <td><a href="messagerie.php">Ma messagerie</a></td>
              </tr>
              <tr>
                <td>Mes listes</td>
              </tr>
              <tr>
                <td>Mon abonnement</td>
              </tr>
              <tr>
                <td><a href="logout.php">Me d&eacute;connecter</a></td>
              </tr>
            </tbody>
          </table>
          </td>
        </tr>
        <tr>
          <td colspan="4" rowspan="1" style="height: 40px;"></td>
        </tr>
        <tr>
          <td style="height: 33px; width: 40%" colspan="2" rowspan="1">MESSAGE</td>
          <td style="height: 33px; width: 40%" colspan="2" rowspan="1">RECU</td>
        </tr>
        <?php
        include('dbmessagerie.php');
        ?>
      </tbody>
    </table>
    </form>
    ensuite le dbmessagerie.php:
    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
     
    $query = "SELECT * FROM `".$table_recu."` ORDER BY `".$table_recu."`.`msg_recu_date` ASC LIMIT 0,$recu_nb";
    include('dbconnect.php');
    mysql_close();
    $recu_nb = mysql_num_rows($result);
    echo '<tr>
          <td style="height: 33px; width: 30%;">Pseudo</td>
          <td style="height: 33px; width: 50%;" colspan="2">Objet</td>
          <td style="height: 33px; width: 10%;">
          <input type="submit" value="Supprimer"></td>
        </tr>';
    while ($recu_nb > 0){
    $recu_nb = $recu_nb - 1;
    $msg_id = mysql_result($result, $recu_nb, 'msg_id');
    $autor = mysql_result($result, $recu_nb, 'msg_recu_autor');
    $titre = mysql_result($result, $recu_nb, 'msg_recu_titre');
    $stat = mysql_result($result, $recu_nb, 'msg_recu_stat');
    echo '<tr>
          <td style="height: 33px; width: 30%;"><big>';
          if ($stat == 0){
          echo $autor;
          }
    echo '</big>';
          if ($stat == 1){
          echo $autor;
          }
    echo '</td>
          <td style="height: 33px; width: 50%;" colspan="2">
          <a href="msg_recu.php?msg_id='.$msg_id.'"><big>';
          if ($stat == 0){
          echo $titre;
          }
    echo '</big>';
          if ($stat == 1){
          echo $titre;
          }
    echo '</a></td>
          <td style="height: 33px; width: 10%;">
          <input type="checkbox" name="supp" value="'.$msg_id.'"></td>
        </tr>';
    }
    voila.

  12. #12
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je suppose que ça vient de supp

    En mettant supp[] dans le name.

    et en mettant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r($_POST['supp'])
    pour voir ce qu'il donne tu as quoi ?

  13. #13
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    Personnellement ce qui me gene c'est que je vois ta requete SQL mais je ne vois pas ou tu la transmet a ton serveur


    Y'a pas de mysql_query dans ton code et donc nul part ou est setter ton $result

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 156
    Points : 102
    Points
    102
    Par défaut
    alors le print_r ne donne rien,
    et le mysql_query est dans le dbconnect.php.
    je débute mais quand même.

  15. #15
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Faudrait peut être déplacer l'appel à mysql_close : les ressources obtenues suite à votre requête ne sont certainement plus valables. Il faudrait également contrôler la bonne exécution de la requête - or die(mysql_error()); (on ignore si vous le faites déjà ou non)

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 156
    Points : 102
    Points
    102
    Par défaut
    le probleme n'est pas là, j'utilise le même système
    de connection, requete avec tout mes script et toutes
    mes pages et il n'y a pas de soucis.

    voici le dbconnect.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    $connect = mysql_connect('monserversql','moi','monmdp') or die ("erreur de connexion à Mysql");
    $db = 'prefixedesbase';
    $db = $db.$ndb;   //ajout d'un suffixe pour déterminer quel base
    mysql_select_db($db,$connect) or die ("erreur de connexion à la base");
    $result = mysql_query($query) or die ($query . ' : ' . mysql_error());
    mysql_close();
    ?>
    j'ai déplacé le mysql_close dans ce script pour économiser des
    ligne supplémentaire à tous mes scripts.
    le soucis est moins compliqué que cela, j'ai une page qui affiche
    en fonction de ce qu'il y a en bdd une liste avec une checkbox
    pour chaque élément(entre 0 et 20),
    je me base sur le tuto visé plus haut parce qu'il correspond à mon besoin.
    (une liste de checkbox qui ont toutes le même name)
    j'ai un formulaire tout ce qu'il y a de normal, et lorsque je submit,
    je veux récupérer l'ensemble, la liste, le tableau, des valeurs de mes
    checkboxs, pour gérer en même temps tous les éléments checker.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 156
    Points : 102
    Points
    102
    Par défaut
    c'est bon j'ai trouver la soluce.merci.
    il faut bien mettre les [] dans le name des checkboxs.
    et comme quoi ça tiens à pas grand chose des fois, j'ai mis post
    en majuscule dans ma balise form, (alors que partout ailleur c'est
    en minuscule et personne se plaint) et maintenant ça passe.
    donc re merci à tous.

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

Discussions similaires

  1. [Base de Données] Besoin de compléments sur un tuto
    Par La Praline dans le forum VB 6 et antérieur
    Réponses: 51
    Dernier message: 03/04/2007, 16h55
  2. Rechercher un enregistrement sur un autre formulaire
    Par Grosmou dans le forum Access
    Réponses: 3
    Dernier message: 12/09/2005, 13h58
  3. Selectionner champ sur ouverture de formulaire
    Par pigouille dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 07/02/2005, 11h51
  4. Faire pointer sur un objet formulaire
    Par bigsister dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/11/2004, 16h25
  5. zoom sur image de formulaire
    Par bourvil dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/10/2003, 09h25

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