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 :

boucle extrat sur un $_post


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut boucle extrat sur un $_post

    Bonjour à tous,

    Je cherche à fait une boucle extrat sur une variable envoyé par post car cette variable de formulaire peux avoir "x" valeurs.

    J'ai donc fait ce code :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    extract($_GET, EXTR_PREFIX_SAME, "_");
    for($i=0;$i<3;$i++)
    {
      echo $_GET[$i.'_notifyList'];
    }

    Lorsque j'envoie le formulaire j'ai cette réponse URL :

    http://localhost/test.php?checkbox=checkbox&notifyList=3&notifyList=4&notifyList=5&beforeDays=00&beforeEnd=00&addContract=Enregistrer

    mais j'ai une réponse php :
    Notice: Undefined index: 0_notifyList
    Je ne sais pas si c'est claire, je vous remercie pour vos réponses.

  2. #2
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut
    Salut,

    Fait un print_r() sur ta variable $_GET et tu verras que seule la dernière variable notifyList est disponible avec la valeur 5.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    echo '<pre>';
    print_r($_GET);
    echo '</pre';
     
    /* Retourne
    Array (     [checkbox] => checkbox     [notifyList] => 5     [beforeDays] => 00     [beforeEnd] => 00     [addContract] => Enregistrer )*/
    Tu ne peux pas passer de tableau par GET sauf si tu le sérializes (sic) quand c'est possible.
    Sinon faut passer par POST.
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Salut,

    Merci Torgar pour ta réponse, si je passe par un post, j'ai ce retour :
    Array
    (
    [checkbox] => checkbox
    [notifyList] => 5
    [beforeDays] => 00
    [beforeEnd] => 00
    [addContract] => Enregistrer
    )
    mais toujours qu'une entrée notifyList... Je ne m'y prends pas correctement je pense... Je continue à chercher.

  4. #4
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut
    J'aurai du commencer par le début

    Visiblement tu récupères tes données depuis un formulaire ?
    Donc que se soit par POST ou GET ça ne changerait rien.

    Tu peux nous montrer le code de ton formulaire s'il te plait ?

    AMHA, tu as défini des input en checkbox sans les crochets. Du moins ça y ressemble... Mais comme j'ai pas les yeux en face des trous aujourd'hui, on sais jamais...
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Re,

    Effectivement je passe par un formulaire pour mes données

    Voici le form :
    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
     
    <form action="" name="addContrat" method="post"> 
    <input name="checkbox" type="checkbox" class="checkboxalign" title="V&eacute;rifier les r&egrave;gles de notification activ&eacute;es pour ce contrat" onClick="javascript:enableNotify();" value="checkbox" checked>
    <select name="userList" multiple="multiple" size="7" style="width: 160px;" class="formStyle">
                                        <option value="3">administrator</option>
                                        <option value="4">Shawn Adams</option>
                                        <option value="5">Heather Graham</option>
                                        <option value="6">John Roberts</option>
                                        <option value="7">Howard Stern</option>
                                        <option value="8">Jeniffer Doe</option>
                                        <option value="14">Customer Service Manager</option>
                                        <option value="15">Business Unit Administrator</option>
                                        <option value="16">Customer Service Staff</option>
                                      </select>
     
     
    <input name="assign" class="formStylebutton" id="reset223" style="width: 30px;" title="Assign" value="&gt;&gt;" onClick="MoveOption(this.form.userList, this.form.notifyList)" type="button"><br><br>
    <input name="deassign" class="formStylebutton" id="reset2222" style="width: 30px;" title="Deassign" value="&lt;&lt;" onClick="MoveOption(this.form.notifyList, this.form.userList)" type="button">
    <select name="notifyList" multiple="multiple" size="7" style="width: 160px;" class="formStyle"></select>
    <input name="beforeDays" size="3" value="00" style="width: 40px;" class="formStyle" type="text">
    <input name="beforeEnd" size="3" value="00" style="width: 40px;" class="formStyle" type="text">
     
    <input name="addContract" value="Enregistrer" style="width: auto;" class="subtbtn normalbold" title="Enregistrer" type="submit">
    </form>

    Le select notifyList est créer par ce code Javascript :
    Code javascript : 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
    function MoveOption(objSourceElement, objTargetElement)    
        {        
               var aryTempSourceOptions = new Array();        
               var x = 0;                
     
               //looping through source element to find selected options        
               for (var i = 0; i < objSourceElement.length; i++) {            
                    if (objSourceElement.options[i].selected) {                
                        //need to move this option to target element                
                        var intTargetLen = objTargetElement.length++;                
                        objTargetElement.options[intTargetLen].text = objSourceElement.options[i].text;                
                        objTargetElement.options[intTargetLen].value = objSourceElement.options[i].value; 
    					objTargetElement.options[intTargetLen].selected = true;           
                     }            
                     else {                
                          //storing options that stay to recreate select element                
                          var objTempValues = new Object();                
                          objTempValues.text = objSourceElement.options[i].text;                
                          objTempValues.value = objSourceElement.options[i].value;                
                          aryTempSourceOptions[x] = objTempValues;                
                          x++;            
                     }        
                }                
     
                //resetting length of source        
                objSourceElement.length = aryTempSourceOptions.length;        
                //looping through temp array to recreate source select element        
                for (var i = 0; i < aryTempSourceOptions.length; i++) {            
                    objSourceElement.options[i].text = aryTempSourceOptions[i].text;            
                    objSourceElement.options[i].value = aryTempSourceOptions[i].value;            
                    objSourceElement.options[i].selected = false;
               }    
        }

  6. #6
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut
    Il faut que tu rajoutes les crochets dans le name de ton input, comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="notifyList[]" multiple="multiple" size="7" style="width: 160px;" class="formStyle"></select>
    Ensuite, utilise un foreach() pour passer en revue les résultats.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_POST['notifyList'] as $value) {
        echo $value . '<br />';
    }
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut

    Salut Torgar,

    Je te remercie, j'ai cette réponse :
    Array
    (
    [checkbox] => checkbox
    [notifyList] => Array
    (
    [0] => 3
    [1] => 4
    [2] => 5
    )

    [beforeDays] => 00
    [beforeEnd] => 00
    [addContract] => Enregistrer
    )
    donc c'est ce que je voulais. Je te remercie encore une fois.

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

Discussions similaires

  1. boucle Struts sur une action !
    Par habasque dans le forum Struts 1
    Réponses: 6
    Dernier message: 09/02/2009, 12h00
  2. Résultat de boucle <select> sur 2 lignes
    Par lodan dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 25/09/2006, 09h31
  3. [MySQL] Problème de boucle while sur base de données
    Par Darhyl dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/05/2006, 15h11
  4. [FLASH 8] boucle fonction sur bouton
    Par bractar dans le forum Flash
    Réponses: 2
    Dernier message: 31/01/2006, 18h34
  5. [Eval] Problème de boucle for sur des tableaux
    Par battle_benny dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/01/2006, 23h55

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