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 :

[SQL] Fonctionnement des checkbox


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut [SQL] Fonctionnement des checkbox
    bonjour,

    je me hurte à un petit souci que je n'avais jamais eu jusqu'à présent étant donné que je n'avais jamais essayer de passer un tableau d'une page à l'autre


    ma question est donc toute simple : quelle est la bonne syntaxe du $_POST dans le cas d'un chekbox (voir code pour plus de compréhension)

    sur une page j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td width="5px"><input type="checkbox" name="box['.$i.']" /></td>
    puis sur la page suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $tab =array();
    $tab=$_POST['box']; //syntaxe mauvaise pour un array

  2. #2
    Membre Expert
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Par défaut
    Dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td width="5px"><input type="checkbox" name="box['.$i.']" /></td>
    le .$i. ne serait-il pas de trop ?? !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td width="5px"><input type="checkbox" name="box[]" /></td>

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Je ne sais pas car à vrai dire c'est la premiere fois que j'essai de faire ce genre de choses


    en gros ce que je voudrais c'est avoir sur une page une liste avec pour chaque ligne une case à cocher et sur la page suivante un traitement qui soit fais (exemple supprimer la (ou les) ligne(s) que l'on a coché de la base


    pour le moment ce qui semble marché c'est la premiere page mais sur la page suivante je n'arrive pas à récuperer le tableau qui me permettrai de savoir quelles case a été coché ou non ?

    PS: j'ai changé le titre pour qu'il soit plus parlant

  4. #4
    Membre émérite Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Par défaut
    Bonjour,

    En fait tout dépend du résultat auquel on s'attend.

    Prenons une liste de legumes...
    Patates, haricots, Epinards, Salades, Brocolis

    Si on part du principe que l'on doit retourner un ou plusieurs légumes, dans ce cas on doit déclarer un tableau de variables et on doit faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <input type="checkbox" name="legumes[]" value="Patates" />Patates
    <input type="checkbox" name="legumes[]" value="Haricots" />Haricots
    <input type="checkbox" name="legumes[]" value="Epinards" />Epinards
    <input type="checkbox" name="legumes[]" value="Salades" />Salades
    <input type="checkbox" name="legumes[]" value="Brocolis" />Brocolis
    Dans ce cas, c'est un tableau qui me sera renvoyé. Il me reverra la valeur de ce qui a été coché.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $legumes=$_POST['legumes'];
    echo $legumes[0]; //Affiche le premier legume coché
    Maintenant si je souhaite ne renvoyer qu'un seul élément :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td width="5px"><input type="checkbox" name="box" value="box['.$i.']" /></td>
    Je récupère l'élemen sous forme de variable comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $tab=$_POST['box']; 
     
    echo $tab; //renvoi la valeur de  box['.$i.'] dans le précédent formulaire
    @+
    Cadou

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    merci pour votre aide

  6. #6
    Membre émérite Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Par défaut
    Hello,

    Si je résume, tu génères un paquet de cases a cocher pour savoir quels enregistrements il faut éffacer. Seulement je ne vois pas de boucle dans ton code pour afficher les cases...

    Donc je dois partir sur une hypothèse que tu devras adapter... Et non te donner la solution à ton probleme comme tu l'esperais. Toutes tes cases a cocher doivent avoir une valeur et de préférence l'identifiant de l'enregistrement... C'est plus facile pour effacer ensuite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $sql = "SELECT id, name from table1"; // exemple sql
    $result = mysql_query($sql,$db);
     
    echo'<tr><td width="30px">'.$donnees['Groupe'].'</td></tr>
    <form action="StandbyOn.php" method="post">";
     
    while ($C = mysql_fetch_array($result)) {
    echo "<tr><td><input type="checkbox" name="box[]" value="$C['id']"/>$C['name']</td></tr>"
    }
    </form>
    </table>
    Ensuite pour récupérer les cases cochées (tu remarqueras que ce sont les ID des lignes qui sont envoyés par la valeur de la case a cocher)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    $box=$_POST['box'];
    $IN="";
    foreach($box as $myid)
    {
        if($IN) {$IN .= ",";}
        $IN .= $myid;
    }
     
    $sql = "DELETE FROM table1 WHERE id IN (".$IN.");";
    Tu remarqueras que j'utilises une subtilité du SQL qui fais que je n'envoi qu'une seule requete à la base pour effacer tous les enregistrements au lieu d'une requete par enregistrement...

    @+
    cadou

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

Discussions similaires

  1. [AC-2010] Requête SQL en fonction des checkbox d'une listbox
    Par Aiola dans le forum VBA Access
    Réponses: 3
    Dernier message: 25/07/2012, 22h41
  2. Fonctionnement des serveurs liés en dehors de SQL EXPRESS 2008
    Par habib87000 dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 28/04/2011, 16h01
  3. [SQL] Utilisation des valeurs de Checkbox
    Par jenovah dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 16/04/2007, 14h58
  4. [SQL] Passer plusieurs variables à l'aide des checkbox
    Par urbalk dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 22/10/2006, 19h32
  5. [MySQL] Erreur sql pour inserer des checkbox
    Par digger dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/11/2005, 11h06

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