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 :

[Tableaux] Menu déroulant - CheckBox


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Par défaut [Tableaux] Menu déroulant - CheckBox
    Bonjour,

    J'ai mis en place un formulaire permettant de lier des groupes à un utilisateur.
    Ainsi, lorsque j'accede à la page d'edition de l'utilisateur, il m'est possible de le lier (ou pas ...) à un groupe.
    Pour l'instant, les groupes sont rangé dans une liste déroulante, mais le probleme vient du fait qu'a partir du moment ou je veux lier l'utilisateur un plusieur groupes, je dois refaire l'action en boucle, c.a.d sélection du groupe - ok - sélection de l'utilisateur - sélection du groupe - ok - sélection de l'utilisateur - ....

    Je voudrais savoir si il était possible d'afficher les groupes sous forme de CheckBox (permettant donc une sélection multiples) et comment faire?

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    il te suffit de changer le type de génération des groupes... c'est pas vraiment compliqué... tu sais faire des checkbox non ?

    sinon il y a aussi la possibilité de faire un select multiple
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Par défaut
    C'est pas vraiment le select multiple ou le checkBox qui me pose probleme, c'est l'enregistrement dans la base de données.

    Voici mon code avec les checkbox:
    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
     
    <form action="../op/op.UsrMgr.php" name="form<?print $us->getID();?>_2" onsubmit="return checkForm2('<?print $us->getID();?>');">
            <input type="Hidden" name="action" value="addgroup">
            <input type="Hidden" name="userid" value="<?print $us->getID();?>">
            <table>
                <tr>
                    <td class="inputDescription"><?printMLText("add_groups");?>:</td>
                    <td>    
                            <?
                                foreach ($allGroups as $currGroup)
                                    if (!$us->isInGroup($currGroup))
                                        print "<input type='checkbox' name='groupid' value=\"".$currGroup->getID()."\">" . $currGroup->getName() . " / \n";;
                            ?>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td colspan="2"><br><input type="Submit"></td>
                </tr>
            </table>
            </form>
    ça renvoit sur l'action :
    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
     
    else if ($action == "addgroup")
    {
        printStartBox(getMLText("add_group"));
        print "<div class=\"standardText\">";
        printMLText("adding_groups");
     
        $member = getUser($userid);
        $newGroup = getGroup($groupid);
     
        $member->addGroup($newGroup);
     
        printMLText("op_finished");
        printGoto(array(array(getMLText("member_management"), "../out/out.UsrMgr.php")));
    }
    qui va donc m'enregistrer dans la base grace à la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function addGroup($group)
        {
            GLOBAL $db;
     
            $queryStr = "INSERT INTO tblGroupMembers (groupID, userID) VALUES (".$group->getID().", ".$this->_id.")";
            $res = $db->getResult($queryStr);
            if ($res)
                return false;
     
            unset($this->_users);
            return true;
        }
    Mon probleme, c'est que pour l'instant, même si je sélectionne plusieurs groupes, il ne m'en enregistre qu'un seul dans la base, et je ne vois pas comment faire pour qu'il prennent en compte tous ce que je sélectionne.

  4. #4
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    rajoute [] à la fin du name de ton select ou de tes checkbox... comme ça c'est un tableau avec toutes les valeurs qui sera envoyé (déjà dit dit dit et rererererdit sur le forum )
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Par défaut
    oki, mais ça se passe comment au niveau de ma requete SQL, il ne va pas comprendre le fait que ID = Array ? ... donc message d'erreur non?

  6. #6
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    il faut que tu parcours tout le tableau pour générer ta requête...

    dans l'absolue, un simple implode devrait même être suffisant ^^
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Par défaut
    J'avance un petit peu

    Pour l'instant, mon truc fonctionne, mais il me reste un probleme. En depit du fait que les requetes sont effectuer dans la base (si deux groupe sont selectionnés, deux tuples différents sont créés), j'ai toujours un message d'erreur:
    Unknown column 'Array' in 'where clause': SELECT * FROM tblGroups WHERE id = Array
    Je ne comprend pas ... il execute pourtant bien la requete!

    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
     
    function addGroup($group)
        {
            GLOBAL $db;
            GLOBAL $group;
     
            foreach($group as $groupe){
                $queryStr = "INSERT INTO tblGroupMembers (groupID, userID) VALUES (".$groupe.", ".$this->_id.")";
                $res = $db->getResult($queryStr);
            }
                if ($res)
                    return false;
                unset($this->_users);
                return true;
        }

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

Discussions similaires

  1. Checkbox cochés selon menu déroulant
    Par beninsky dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/02/2009, 16h53
  2. Réponses: 6
    Dernier message: 18/10/2007, 23h44
  3. [Tableaux] Menu déroulant et création
    Par Appli dans le forum Langage
    Réponses: 3
    Dernier message: 20/12/2006, 16h18
  4. [Tableaux] Menu déroulant en PHP
    Par dunbar dans le forum Langage
    Réponses: 4
    Dernier message: 11/08/2006, 10h22
  5. [Tableaux] Menu déroulant et MySQL
    Par dunbar dans le forum Langage
    Réponses: 3
    Dernier message: 28/07/2006, 00h14

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