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 :

extraire valeur liste multiple


Sujet :

Langage PHP

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut extraire valeur liste multiple
    Bonsoir,

    J'ai réaliser un formulaire de modification avec liste à bascule et je souhaite récupérer les valuers des deux listess pour soit supprimer les valeurs dan la table si les valeurs sont plus dans la liste2, soit les insérré si elle sont dans la liste2 et non dans la table. Le problème c'est que je n'arrive pas à récupéré les valeurs.
    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
     
    <table>
                      <tr>
                        <td>
                          <label>Liste 1</label>
                          <select name="liste1[]" id="liste1" multiple size= "6" class="form-control">
                            <?php
                               //req alientation liste
                              while($ligne = $res->fetch()):
                            ?>
                            <option value="<?php echo $ligne['idListe1']?>"><?php echo $ligne['libelle']?></option>
                            <?php
                              endwhile;
                            ?>
                          </select>
                        </td>
                        <td>
                          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                          <input type="button" value="Ajouter >>>" class="btn btn-success" onClick="Deplacer(this.form.liste1,this.form.liste2)">
                          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                          </br>
                          </br>
                          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                          <input type="button" value="&lt;&lt;&lt; Enlever" class="btn btn-success" onClick="Deplacer(this.form.liste2,this.form.liste1)">
                          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                        </td>
                        <td>
                          <label>Liste2</label>
                          <select name="liste2[]" id="liste2" size="6" class="form-control">
                            <?php
                              // requete alimentation liste
     
                              while($ligne2 = $res2->fetch()):
                            ?>
                            <option value="<?php echo $ligne2['idListe2']?>"><?php echo $row4['libelle']?></option>
                            <?php
                              endwhile;
                            ?>
                          </select>
                        </td>
                      </tr>
                    </table>
    Merci de votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Montre nous ton code de recuperation.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    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
    extract($_POST);
    if(count($_POST['liste1'])>0):
     
    $Col1_Array = $_POST['liste1'];
     
     
                        foreach($Col1_Array as $selectValue1):
    // requete Delete
    endforeach;
    endif;
    if(($_POST['liste2']) !=""):
     
    $Col2_Array = $_POST['liste2'];
     
                        foreach($Col2_Array as $selectValue2):
     
    // requete insert
                        endforeach;
    endif;

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    echo $selectValue1; ?

    Tu es sûr de savoir :
    • utiliser foreach ?
    • ce qu'est un array ?
    • afficher une valeur ?
    • comment vérifier si une variable est bien renseignée ?
    • comment faire un débogage sommaire ?
    • ce qu'est... un effort de recherche personnelle ?


    N.B. Je t'invite aussi à lire l'avertissement concernant extract() :
    Avertissement

    N'utilisez pas extract() sur des données inconnues, comme les données utilisateurs (i.e. $_GET, $_FILES, etc.). Si vous le faites, par exemple, pour rendre compatible un vieux code avec register_globals à Off de façon temporaire, assurez-vous d'utiliser l'une des constantes flags qui n'écrasent pas les valeurs, comme EXTR_SKIP. Sachez aussi que vous devez maintenant extraire dans le même ordre que celui défini dans variables_order du php.ini.

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Sa me prend rien
    Pourtant j'ai bien des valeurs dans mes listes
    Par contre, si je selectionne une valeur et donc sa surligne en bleu et que je clique sur mon bouton pour valider mon form, j'ai bien la valeur sélectionné qui est récupéré. Mais là je veux le contenu de toute la liste

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    A par sa : comment faire un débogage sommaire ?
    Oui

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par totot Voir le message
    ... Mais là je veux le contenu de toute la liste
    Il faut la ré-afficher, indépendamment des résultats du formulaire !
    Puis, comparer les résultats à cette liste.

    Le "débogage sommaire" consiste à :
    • activer la gestion et affichage des erreurs/alertes
    • mettre des echo des variables, pour vérifier leur valeur
    • mettre des echo 'ici ok'; dans son code pour vérifier si le script passe où il faut (dans les if, foreach,...)
    • et tout message/toute acction permettant de cibler soi-même où peut se trouver le problème

    Et ce, AVANT de poster.

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Je comprend pas trop ce que tu dis ici:
    Il faut la ré-afficher, indépendamment des résultats du formulaire !
    Puis, comparer les résultats à cette liste.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Avec une liste déroulante <select>, on récupère via le formulaire uniquement les options sélectionnées.
    Ce qui est normal, non ?

    Si tu veux TOUTE la liste, il faut la ré-afficher via une requête puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
        while($ligne = $res->fetch()):
              echo $ligne['idListe1'] .' ('. $ligne['libelle'] .')';
    <?php
        endwhile;
    ?>
    En tout cas, tes explications ne sont pas très claires...

  10. #10
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    J'ai un formulaire pour modifier une personne
    J'ai divers champs et j'ai un champ liste: j'ai une liste à droite qui contient les compétence que la personne n'a pas et à gauche les compétences qu'elle a. Je pe lui en ajouter et lui enlever grâce à cette liste car c'est une liste à bascule.
    Ce que je veux:
    Récupérer les valeurs de liste de droite et s'il y en a qui sont dans la table competence_personne, on les supprimer
    Récupérer les valeurs de liste de gauche et s'il y en a qui ne sont pas dans la table, on lui ajoute.
    Le problème c'est de récupéré le contenu entier des listes

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Plus simple : effacer toutes compétences de la personne et ajouter celles qui ont été choisies.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Oui mais j'arrive pas à récupérer le contenu de cette liste

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Que donne
    sur ta page de traitement du formulaire ?

    Tu as bien abandonné ton extract() ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    J'ai garder mon extract() puisque je récupère d'autre champ
    J'ai fait var_dump et j'ai bien tout mes champs SAUF mes listes

  15. #15
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut retirer extract(), c'est une mauvaise façon de developper.

    Ton <select> est bien à l'intérieur du <form> ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #16
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    J'ai supprimer extract
    Mes liste listes sont bien dans un form
    Et c'est toujours pareil

  17. #17
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Partie qui concerne les listes:
    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
    43
    44
    45
    46
    47
    48
     <div class="form-group">
                  <div class="controls">
                    <table>
                      <tr>
                        <td>
                          <label>liste1</label>
                          <select id="liste1" name="liste1" multiple="multiple" size= "6" class="form-control">
                            <?php 
                              // requete Select
     
                              while($ligne1= $res1->fetch()):
                            ?>
                            <option value="<?php echo $ligne1['id1']?>"><?php echo $ligne1['libelle']?></option> 
                            <?php
                              endwhile;
                            ?>
                          </select>
                        </td>
                        <td>
     
                          <input type="button" value="Ajouter >>>" class="btn btn-success" onClick="Deplacer(this.form.liste1,this.form.liste2)">
                          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                          </br>
                          </br>
                          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                          <input type="button" value="&lt;&lt;&lt; Enlever" class="btn btn-success" onClick="Deplacer(this.form.liste2,this.form.liste1)">
                          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                        </td>
                        <td>
                          <label>liste 2</label>
                          <select id="liste2" name="liste2" multiple="multiple" size="6" class="form-control">
                            <?php 
                              // requete Select
                              while($ligne2= $res2->fetch()):
                            ?>
                            <option value="<?php echo $ligne2['id2']?>"><?php echo $ligne2['libelle']?></option>
                            <?php
                              endwhile;
                            ?>
                          </select>
                        </td>
                      </tr>
                    </table>
                    <SCRIPT language="javascript">
    // Donc : création d'une ligne pour initialiser la largeur puis suppression par ce javascript
    document.formulaire.liste2.options.length=0;
     
    </SCRIPT>
    Javascript:
    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
      <SCRIPT LANGUAGE="JavaScript">
     
    function Deplacer(l1,l2)
    {
    if (l1.options.selectedIndex>=0)
    {
    o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value);
    l2.options[l2.options.length]=o;
    l1.options[l1.options.selectedIndex]=null;
    }
    else
    {
    alert("Aucune compétence sélectionnée");
    }
    }
     
    function PostSelect(liste){
    // On compte le nombre d'item de la liste select
    Nbliste2 = document.forms[liste].elements.liste2.length;
     
    // On lance une boucle pour selectionner tous les items
    for(a=0; a<Nbliste2; a++){
    document.forms[liste].elements.liste2.options[a].selected = true;
    }
     
    // On modifie l'ID du champ select pour que PHP traite cette
    // dernière comme un array
    document.forms[liste].elements.liste2.name = "liste2[]";
     
    // On soumet le formulaire
    document.forms[liste].submit();
    }
     
      </SCRIPT>

  18. #18
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il est ou le formulaire ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  19. #19
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            <form role="form" id="modif" action="reqUpd.php" method="post">
     
    // liste et autre champs
     
    <div class="actions">
                  <input type="submit" value="Modifier le client" name="submit" id="submitButton" class="btn btn-primary" title="Cliquez ici pour créer!" onclick="PostSelect(liste2)" />
                  <input type="reset" value="Effacer le formulaire" class="btn btn-danger" title="Retirez toutes les données du formulaire." />
                </div>
              </fieldset>
            </form>

  20. #20
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    A quoi sert la fonction PostSelect ?
    Tu as essayé sans ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. extraire valeur liste déroulante
    Par Twiggy94 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 20/02/2015, 16h28
  2. récupérer valeurs liste multiple
    Par Fench dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 03/12/2008, 17h39
  3. [JSP] Récup valeurs liste html à choix multiples
    Par spiritusss dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 21/02/2006, 16h03
  4. [Conception] inserer des valeurs provenant d'une liste multiple
    Par digger dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 24/11/2005, 17h35
  5. recuperer valeur liste choix multiple
    Par gabychon dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/06/2005, 11h47

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