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 :

variables dynamiques : récupérer nom et valeur paramètre


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de zozoman
    Homme Profil pro
    Futur ex-prof
    Inscrit en
    Décembre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Futur ex-prof
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 119
    Par défaut variables dynamiques : récupérer nom et valeur paramètre
    Bonjour à tous,

    j'ai un formulaire contenant de nombreuses variables, j'ai donc créé le formulaire en php en réalisant une boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    for($i=0;$i<10;$i++)
    {
        echo'<tr>';
        echo'   <td><input type="text" name="nomParam'.$i.'" />';
        echo'   <td><input type="text" name="min'.$i.'" /></td>';
        echo'   <td><input type="text" name="opt'.$i.'"  /></td>';
        echo'   <td><input type="text" name="max'.$i.'" /></td>';
        echo'   <td><input type="text" name="contr'.$i.'"  /></td>';
        echo'   <td><textarea name="rem'.$i.'"></textarea></td>';
        echo'</tr>';  
    }
    J'ai essayé de récupérer le nom et la valeur des paramètres en utilisant plusieurs syntaxes mais ça ne marche pas, pourriez vous m'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    for($i=0;$i<10;$i++)
     {
           // ligne0, ligne1, ...ligne9
           $ligne='ligne'.$i; 
     
           // $ligne0[], $ligne1[], ...,     
           $${$ligne}=array('nomParam'.$i.','min'.$i.','opt'.$i.'','max'.$i.','contr'.$i.','rem'.$i);
                    for($j=0;$j<count(${$ligne});$j++)
                    {
                        //$valeur='$_POST[\''.${$ligne}[$j].'\']';
                        echo ${$ligne}[$j].' '.$_POST['\''.${$ligne}[$j].'\''].'<br />'; 
                    }
    }
    Pourriez-vous m'aider ?

  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
    Par défaut
    Utilise une notation en tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td><input type="text" name="form['.$i.'][min]" />';}
    Et parcours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    foreach ($_POST['form'] as $key=>$inputs) {
         echo '<p>Ligne ' . $key . '</p>';
        foreach ($inputs as $name=>$value) {
              echo $name . ' : ' . $value . '<br/>';
       }
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé Avatar de zozoman
    Homme Profil pro
    Futur ex-prof
    Inscrit en
    Décembre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Futur ex-prof
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 119
    Par défaut Merci mille fois
    Je te remercie beaucoup pour ta réponse, ça m'a bien aidé et ça marche directement. Juste pour info [min] est le second indice du tableau et n'est pas indispensable.

    Aurais tu un exemple avec un formulaire et des variables dynamiques. J'ai vu très peu d'exemples avec ce type de variable et je ne comprends pas pourquoi elles sont moins utilisées.

    Je donne le code que j'ai rédigé juste pour info

    le formulaire :
    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
     
    for($i=0;$i<10;$i++)
    {
        echo'<tr>';
        echo'   <td><input type="text" name="nomParam['.$i.']" size="15"/>';
        echo'       <select name="unite['.$i.']">';
        echo'           <option value="-1">Unité</option>';
     
        // On liste l'ensemble des unités
        $txtRequete1='SELECT * FROM unite ORDER BY symboleUnite';
        $requete1=mysql_query($txtRequete1);
        while($tableau1=mysql_fetch_assoc($requete1))
        {
            echo'           <option value="'.$tableau1['idUnite'].'">'.$tableau1['symboleUnite'].'</option>';
        }
        echo'       </select>';
        echo'   </td>';
        echo'   <td><input type="text" name="min['.$i.']" size="6"/></td>';
        echo'   <td><input type="text" name="opt['.$i.']"  size="6"/></td>';
        echo'   <td><input type="text" name="max['.$i.']"  size="6"/></td>';
        echo'   <td><input type="text" name="contr['.$i.']"  size="12"/></td>';
        echo'   <td><textarea name="rem['.$i.']" ></textarea></td>';
        echo'</tr>';  
    }
    L'enregistrement des données :
    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
    49
    50
    51
    52
    53
    54
    55
     
    if(mysql_num_rows($requete2)==0 && mysql_num_rows($requete3)==0)
            {
                foreach($_POST['nomParam'] as $nb0=>$val0)
                {
                    $nomParam[$nb0]=$val0;
                }
     
                foreach($_POST['unite'] as $nb1=>$val1)
                {
                    $uniteParam[$nb1]=$val1;
                }
                foreach($_POST['min'] as $nb2=>$val2)
                {
                    $minParam[$nb2]=$val2;
                }
                foreach($_POST['opt'] as $nb3=>$val3)
                {
                    $optParam[$nb3]=$val3;
                }
                foreach($_POST['max'] as $nb4=>$val4)
                {
                    $maxParam[$nb4]=$val4;
                }
                foreach($_POST['contr'] as $nb5=>$val5)
                {
                    $contrParam[$nb5]=$val5;
                }
                foreach($_POST['rem'] as $nb6=>$val6)
                {
                    $remParam[$nb6]=$val6;
                }
     
                // On récupère l'idBain
                $txtRequete4='SELECT idBain FROM bain WHERE cleDocument='.$tableau4['idDocument'];
                $requete4=mysql_query($txtRequete4);
                $tableau4=mysql_fetch_assoc($requete4);
     
     
                for ($i=0;$i<10;$i++)
                {
                    $txtRequete5='  INSERT INTO parametre 
                                    VALUES (    "",
                                                "'.$nomParam[$i].'",
                                                "'.$tableau4['idBain'].'",   
                                                "'.$uniteParam[$i].'",
                                                "'.$minParam[$i].'",    
                                                "'.$optParam[$i].'",
                                                "'.$maxParam[$i].'",
                                                "'.$contrParam[$i].'",
                                                "'.$remParam[$i].'")';
                    mysql_query($txtRequete5);
     
                }
            }
    Merci encore pour ton aide

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/02/2007, 10h52
  2. [MySQL] variable dynamique:récupérer le nom, pas le contenu
    Par php_de_travers dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/02/2006, 09h13
  3. [VB.Net] Créer dynamiquement un nom de variable
    Par chuck_m dans le forum ASP.NET
    Réponses: 5
    Dernier message: 20/07/2005, 15h08
  4. Réponses: 4
    Dernier message: 09/03/2005, 11h13
  5. [SQL SERVER 2000] Noms de variables dynamiques
    Par cassoulet dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/09/2004, 11h44

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