PHP/HTML Recupérer le nom d'un input

Résolu
Bonjour, je cherche a récupérer le nom de plusieurs input générés par un while, j'ai pensé
à un truc du genre, mais soit la syntaxe est mauvaise, soit c'est emme pas possible :

$i=0;
while($data2 = mysql_fetch_assoc($req2))
{
echo '<dd>'.$data2['entrée'].'<b>Change : </b>'; ?>
<input type="text" name="entrée $i" maxlength="250"> <?php
$i++;
}

Comme vous le voyez, je ne sais pas cb de input vt etre générés ... et j'ai besoin de savoir leur
nom pour traiter ensuitee les données entrées par l'utilisateur ..

Ou si vous voyez un autre moyen ..

Merci pour votre aide !
Configuration: Windows Vista
Firefox 2.0.0.15

6 réponses

  1. Ah ok.
    Pourquoi ne pas envoyer les données dans un tableau alors?
    Il suffira d'utiliser count à la réception.
    Je sais que ça marche en $_GET, jamais essayé en POST, mais ça devrait être la même chose, non?
    1. Pour la méthode de [o.o]REplay :
      while($data2 = mysql_fetch_assoc($req2)) 
      { 
      echo '<dd>'.$data2['entrée'].'<b>Change : </b>'; 
      echo '<input type="text" name="entree[]" maxlength="250">';
      } 
  2. Mais comment je peux faire pour recuperer ce nom dans un echo par exemple ?

    A pas compris...
    1. Si je fais comme ca,

      Dans mon fichier de traitement, si j'écris par exemple :

      echo $_POST['entrée_0'] ;

      ca me met :

      Notice: Undefined index: entrée_0 in D:\Program Files\EasyPHP 2.0b1\www\test\updating.php on line 12

      voila mon pb ...

      merci de votre aide en tout cas ..
  3. Cela veut dire que la variable entrée_0 n'existe pas ou n'a pas été envoyée par le formulaire, vérifie que tu n'a pas fait de faute de frappe...

    Astuce : ne met jamais d'accents dans les noms de variables
    Astuce : pour voir quelle(s) variable(s) a(ont) été envoyée(s) par un formulaire, insere print_r( $_POST ) ; dans ton code
    1. Re - Bonjour !

      Alkaraan, j'ai suivi ton conseil et inseré un print_r( $_POST ) ; dans mon code et j'obtiens ca :

      Notice: Undefined index: entree_0 in D:\Program Files\EasyPHP 2.0b1\www\test\updating.php on line 13
      Array ( [nom] => [domaine] => [onglet] => [remarques] => [entree_'_$i_'] => [nvelle_entrée'] => [sortie_'_$j_'] => [nvelle_sortie'] => )

      On dirait qu'il ne considère pas $i comme une variable ... comment faire pour changer ca ?
  4. Le probleme est dans ta page de formulaire...

    Regarde si tu as bien suivi la syntaxe :
    $i=0; 
    while($data2 = mysql_fetch_assoc($req2)) 
    { 
    echo '<dd>'.$data2['entrée'].'<b>Change : </b>'; 
    echo '<input type="text" name="entree_'.$i.'" maxlength="250">';
    $i++;
    } 
    1. J'ai bien verifié la syntaxe est bonne ...

      On dirait que le resultat de l'input "entree_'.$i.'" est écrasé à chaque boucle du while, en fait seul le resultat du dernier input "entree_'.$i.'" est récupéré .

      Si je remplis tout mes champs "entree_'.$i.'" générés dans le formulaire, j'obtiens :

      Notice: Undefined index: entree_$i in D:\Program Files\EasyPHP 2.0b1\www\test\updating.php on line 13
      Array ( [nom] => [domaine] => [onglet] => [remarques] => [entree_'_$i_'] => bonjour [nvelle_entrée'] => [sortie_'_$j_'] => [nvelle_sortie'] => )

      Alors que j'ai mis 'bonjour' dans le dernier input "entree_'.$i.'" ... c'est bien le $i qui ne semble pas considéré comme une variable ...
    2. @[o.o]REplayJ'y ai aussi pensé, mais ce n'est même pas le problème ici... C'est dans son formulaire qu'il y a une couille, et pes dans la récupération :)
  5. C'est quand même bizarre ce problème... mais on va essayer de le contourner...
    $i=0; 
    while($data2 = mysql_fetch_assoc($req2)) 
    { 
    $name = 'entree_'.$i ;
    echo '<dd>'.$data2['entrée'].'<b>Change : </b>'; 
    echo '<input type="text" name="'.$name.'" maxlength="250">';
    $i++;
    } 
    1. C'est bon, j'ai trouvé la solution : C'était en effet un probleme de syntaxe dans le formulaire :

      <input type="text" name=<?php echo "entree_'.$i.'" ?> maxlength="250"></p><?php

      En effet, sans les balise php, $i n'est pas considéré comme une variable !

      Merci de votre, aide, je met le topic en résolu !
    2. @Ikkathomg -.- j'avais pas fais gaf aux balises...
  6. Bonjour.

    1. N'utiliser que des caractères alphanumériques pour nommer les input.
    => "entree_$i"

    2.
    echo '<dd>'.$data2['entrée'].'<b>Change : </b>'; ?>
    <input type="text" name="entrée $i" maxlength="250"> <?php 

    Tu fermes ta balise php.
    Du coup, le $i du nom n'est pas interprété...

    =>
    echo '<dd>'.$data2['entrée'].'<b>Change : </b>'; 
    echo '<input type="text" name="entree_'.$i.'" maxlength="250">';
    $i++;
    1. OK, ce ne serait donc qu'un probleme de syntaxe ...

      Mais comment je peux faire pour recuperer ce nom dans un echo par exemple ?

      Merci !
    2. @Ikkathun peu d'aide s'il vous plait ...
    3. @IkkathBsr

      Mais macgawel t'a déjà donné la réponse !

      Tu fermais ta balise php trop top.

      Je ne fais que lire ca réponse et ca donne

      $i=0; 
      while($data2 = mysql_fetch_assoc($req2)) 
      { 
      echo '<dd>'.$data2['entrée'].'<b>Change : </b>'; 
      echo '<input type="text" name="entree_'.$i.'" maxlength="250">';
      $i++;
      }