variable form hidden

Petit nouveau ! | 9 Messages

08 avr. 2011, 12:24

Bonjour,
Mon problème va sans doute vous sembler ridicule, mais je rame dessus depuis des jours :
Voilà, j'ai une table que j'appelle pour en extraire les champs, qui s'affichent correctement.
Quand je fais une boucle :
echo $data['login'];
echo .$data['mail'];
Tout marche bien.
Par contre je voudrais faire un bouton de formulaire avec un champ caché, pour faire passer la variable login dans un autre fichier. Je fais donc :
echo '<form vname="form" action="valid/arta.php" method="post" enctype="multipart/form-data" name="form">
<input type="hidden" name="user" value="'.$data['login'].'">
<input type="submit" id="submit" name="submit" value="arta">';

Et là plus de boucle, ça me renvoie systématiquement la valeur de mon dernier enregistrement :-(
Où me trompe-je ?
Merci de votre aide !

Eléphant du PHP | 241 Messages

08 avr. 2011, 12:30

Salut,
peux-tu nous montrer un peu plus de ton code php stp ?

Petit nouveau ! | 9 Messages

08 avr. 2011, 13:40

Voici :
$sql = 'SELECT login,mail,artistes_a,artistes_b,artistes_c,artistes_d,sportifs_a,sportifs_b,sportifs_c,sportifs_d,politiques_a,politiques_b,politiques_c,politiques_d,inventeurs_a,inventeurs_b,inventeurs_c,inventeurs_d FROM defiflash ORDER BY mail';

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
echo '<table border="2" bordercolor="#C90016" align="center" cellspacing="5" cellpadding="5"><tr><td><b>Nom</b></td><td><b>mail</b></td><td><b>art_a</b></td><td><b>art_b</b></td><td><b>art_c</b></td><td><b>art_d</b></td><td><b>spor_a</b></td><td><b>spor_b</b></td><td><b>spor_c</b></td><td><b>spor_d</b></td><td><b>pol_a</b></td><td><b>pol_b</b></td><td><b>pol_c</b></td><td><b>pol_d</b></td><td><b>inv_a</b></td><td><b>inv_b</b></td><td><b>inv_c</b></td><td><b>inv_d</b></td></tr>';
while($data = mysql_fetch_assoc($req))
    {
    echo '<tr><td>'.$data['login'].' </td><td><a href=mailto:'.$data['mail'].'>'.$data['mail'].' </a></td><td>
<form vname="form" action="valid/arta.php" method="post" enctype="multipart/form-data" name="form">
<input type="hidden" name="user" value="'.$data['login'].'">
<input type="submit" id="submit" name="submit" value="arta">
</td><td>'.$data['artistes_b'].'</td><td>'.$data['artistes_c'].'</td><td>'.$data['artistes_d'].'</td><td>'.$data['sportifs_a'].'</td><td>'.$data['sportifs_b'].'</td><td>'.$data['sportifs_c'].'</td><td>'.$data['sportifs_d'].'</td><td>'.$data['politiques_a'].'</td><td>'.$data['politiques_b'].'</td><td>'.$data['politiques_c'].'</td><td>'.$data['politiques_d'].'</td><td>'.$data['inventeurs_a'].'</td><td>'.$data['inventeurs_b'].'</td><td>'.$data['inventeurs_c'].'</td><td>'.$data['inventeurs_d'].'</td></tr>';
    }
echo "</table>";

mysql_close();
}
Merci de votre aide :-)
Modifié en dernier par abx66 le 11 avr. 2011, 15:04, modifié 2 fois.

Eléphant du PHP | 241 Messages

08 avr. 2011, 14:31

Je crois que je vois pas bien où est le problème (pourtant je suis bien réveiller :D), pour ma part avec ce code il s'affiche un tableau avec toutes les lignes présentes dans mon fichier.

NB: pense à utiliser la balise PHP du forum pour afficher ton code php, c'est plus clair pour les lecteurs ! :wink:

ViPHP
xTG
ViPHP | 7331 Messages

08 avr. 2011, 15:01

Déjà tu ne fermes pas ta balise <form> ce qui fait que tu fais des <form> dans des <form>...
Regardes donc le code HTML généré par le navigateur, il est probable que tes lignes doivent être là mais non visible à cause de soucis de balise de ce genre.

Petit nouveau ! | 9 Messages

11 avr. 2011, 15:02

Déjà tu ne fermes pas ta balise <form> ce qui fait que tu fais des <form> dans des <form>...
Regardes donc le code HTML généré par le navigateur, il est probable que tes lignes doivent être là mais non visible à cause de soucis de balise de ce genre.
Bonjour et merci de ta réponse.
J'ai bien rajouté la balise pour fermer le <form> ( #-o ) mais le problème reste entier : quelque soit le bouton sur lequel je clique, seul le premier enregistrement est modifié.
Quand j'affiche le code html de la page, l'ensemble du tableau est affiché, pourtant.
Je ne comprends pô...

ViPHP
xTG
ViPHP | 7331 Messages

11 avr. 2011, 15:29

Peux-t-on voit le code réactualisé ?
Car si tu l'as correctement fermée il n'y a pas de raison qu'en postant le formulaire numéro X il te poste le formulaire numéro 1...

Eléphant du PHP | 422 Messages

11 avr. 2011, 16:21

hello

j'ai pas lu le code ( hou hou) mais je passerais par des liens avec des paramètres URL (http://mapage.php?id=[idUSer] par exemple ) que l'on récupère avec $_GET['id']

enjoy

++
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

Petit nouveau ! | 9 Messages

12 avr. 2011, 13:53

Peux-t-on voit le code réactualisé ?
Car si tu l'as correctement fermée il n'y a pas de raison qu'en postant le formulaire numéro X il te poste le formulaire numéro 1...
Voilà :
$sql = 'SELECT login,mail,artistes_a,artistes_b,artistes_c,artistes_d,sportifs_a,sportifs_b,sportifs_c,sportifs_d,politiques_a,politiques_b,politiques_c,politiques_d,inventeurs_a,inventeurs_b,inventeurs_c,inventeurs_d FROM defiflash ORDER BY mail';

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
echo '<table border="2" bordercolor="#C90016" align="center" cellspacing="5" cellpadding="5"><tr><td><b>Nom</b></td><td><b>mail</b></td><td><b>art_a</b></td><td><b>art_b</b></td><td><b>art_c</b></td><td><b>art_d</b></td><td><b>spor_a</b></td><td><b>spor_b</b></td><td><b>spor_c</b></td><td><b>spor_d</b></td><td><b>pol_a</b></td><td><b>pol_b</b></td><td><b>pol_c</b></td><td><b>pol_d</b></td><td><b>inv_a</b></td><td><b>inv_b</b></td><td><b>inv_c</b></td><td><b>inv_d</b></td></tr>';
while($data = mysql_fetch_assoc($req))
    {
    echo '<tr><td>'.$data['login'].' </td><td><a href=mailto:'.$data['mail'].'>'.$data['mail'].' </a></td><td>
<form vname="form" action="valid/arta.php" method="post" enctype="multipart/form-data" name="form">
<input type="hidden" name="login" value="'.$data['login'].'">
<input type="submit" id="submit" name="submit" value="arta"></form>
</td><td>'.$data['artistes_b'].'</td><td>'.$data['artistes_c'].'</td><td>'.$data['artistes_d'].'</td><td>'.$data['sportifs_a'].'</td><td>'.$data['sportifs_b'].'</td><td>'.$data['sportifs_c'].'</td><td>'.$data['sportifs_d'].'</td><td>'.$data['politiques_a'].'</td><td>'.$data['politiques_b'].'</td><td>'.$data['politiques_c'].'</td><td>'.$data['politiques_d'].'</td><td>'.$data['inventeurs_a'].'</td><td>'.$data['inventeurs_b'].'</td><td>'.$data['inventeurs_c'].'</td><td>'.$data['inventeurs_d'].'</td></tr>';
    }
echo "</table>";

mysql_close();
Je ne vois pas non plus où le bât blesse :?

Mammouth du PHP | 672 Messages

12 avr. 2011, 13:59

Je vais peut-être dire une connerie (j'aurais fait comme telnes, avec un GET), mais c'est normal que tous les formulaires aient le même vname ?

Petit nouveau ! | 9 Messages

14 avr. 2011, 10:33

Je vais peut-être dire une connerie (j'aurais fait comme telnes, avec un GET), mais c'est normal que tous les formulaires aient le même vname ?
L'idée m'a parue bonne, j'ai testé avec <form vname="'.$data['login'].'" action="valid/arta.php" method="post" enctype="multipart/form-data" name="form">
Mais non :-( (en changeant le name="form" non plus, d'ailleurs)
Merci quand même !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 avr. 2011, 18:05

yop,

je pense que le système est mal conçu ? que souhaite tu faire exactement ?

si non nome le bouton submit avec un nom explicite contenant l'id correspondant au pseudo ou passe un champ hidden en même temps pour faire la correspondance entre les deux.

je n'ai pas trouvé d'attribut vname, qu'est ce ? (d'ailleur il me semble que name n'est pas accepté en xhtml ;) )


@+
Il en faut peu pour être heureux ......