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

Résolu/Fermé
Ikkath Messages postés 30 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 6 juillet 2009 - 15 juil. 2008 à 16:17
[o.o]REplay Messages postés 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009 - 16 juil. 2008 à 10:01
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 !

6 réponses

[o.o]REplay Messages postés 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009 28
16 juil. 2008 à 09:57
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
Alkaaran Messages postés 285 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 3 novembre 2009 37
16 juil. 2008 à 09:59
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">';
} 
0
[o.o]REplay Messages postés 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009 28 > Alkaaran Messages postés 285 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 3 novembre 2009
16 juil. 2008 à 10:01
(=
0
Alkaaran Messages postés 285 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 3 novembre 2009 37
15 juil. 2008 à 17:30
Mais comment je peux faire pour recuperer ce nom dans un echo par exemple ?

A pas compris...
0
Ikkath Messages postés 30 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 6 juillet 2009
15 juil. 2008 à 17:52
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 ..
0
Alkaaran Messages postés 285 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 3 novembre 2009 37
15 juil. 2008 à 18:41
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
0
Ikkath Messages postés 30 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 6 juillet 2009
16 juil. 2008 à 09:11
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 ?
0
Alkaaran Messages postés 285 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 3 novembre 2009 37
16 juil. 2008 à 09:23
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++;
} 
0
Ikkath Messages postés 30 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 6 juillet 2009
16 juil. 2008 à 09:34
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 ...
0
[o.o]REplay Messages postés 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009 28 > Ikkath Messages postés 30 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 6 juillet 2009
16 juil. 2008 à 09:47
Essaie d'utiliser les variables dynamiques:) $$variables. ca devrait résoudre ton problème.
-> http://www.manuelphp.com/php/language.variables.variable.php
0
Alkaaran Messages postés 285 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 3 novembre 2009 37 > [o.o]REplay Messages postés 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009
16 juil. 2008 à 09:51
J'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 :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alkaaran Messages postés 285 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 3 novembre 2009 37
16 juil. 2008 à 09:45
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++;
} 
0
Ikkath Messages postés 30 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 6 juillet 2009
16 juil. 2008 à 09:58
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 !
0
[o.o]REplay Messages postés 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009 28 > Ikkath Messages postés 30 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 6 juillet 2009
16 juil. 2008 à 09:59
omg -.- j'avais pas fais gaf aux balises...
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
15 juil. 2008 à 16:24
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
Ikkath Messages postés 30 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 6 juillet 2009
15 juil. 2008 à 16:39
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 !
0
Ikkath Messages postés 30 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 6 juillet 2009 > Ikkath Messages postés 30 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 6 juillet 2009
15 juil. 2008 à 17:26
un peu d'aide s'il vous plait ...
0
PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606 > Ikkath Messages postés 30 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 6 juillet 2009
15 juil. 2008 à 17:35
Bsr

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++;
} 


0