Page 1 sur 2
Transmettre une variable depuis un formulaire
Posté : 31 janv. 2012, 12:18
par tintin
Bonjour à tous (et à toutes)
Depuis le formulaire FORM.php affichant une liste de noms, je souhaite passer à la page TEST.php la valeur de Champ1 au moment où l'internaute clique sur le lien.
while ($rows=mysql_fetch_array($result))
{
echo '<tr>';
echo '<td>'.'<a href="test.php">'.'</td>';
echo '</tr>';
}
NB: Structure de la table utilisée:
Champ1: varchar(20)
Champ2: varchar(20)
Une âme charitable aurait-elle la réponse ?
Merci d'avance.
tintin
Re: Transmettre une variable depuis un formulaire
Posté : 31 janv. 2012, 12:29
par moogli
Salut,
Passe l'info dans l'url par exemple test.php?champ1=xxx
Dans test.php tu récupère $_GET['champ1'] qui aura pour valeur xxx.
Dans ta boucle while c'est une simple concaténation.
@+
Re: Transmettre une variable depuis un formulaire
Posté : 31 janv. 2012, 12:41
par sirakawa
Pas de trace de formulaire dans le code que tu proposes.
Les valeurs de champ1 sont prises dans la BDD et indépendantes de ce que l'utilisateur fait avec le formulaire?
Re: Transmettre une variable depuis un formulaire
Posté : 31 janv. 2012, 12:45
par tintin
Rebonjour à tous et merci à moogli,
Ta proposition est intéressante mais es-tu sûr que test.php?champ1=xxx passe bien le contenu du champ champ1 ? Ta syntaxe m'interroge.
Encore merci pour vos futures réponses.
tintin
Transmettre une variable depuis un formulaire
Posté : 31 janv. 2012, 12:56
par tintin
Rerebonjour,
Désolé pour toi sirakawa mais j'étais en train de répondre à moogli quand ton message est apparu et du coup je n'y réponds que maintenant.
Tu dis "Pas de trace de formulaire dans le code que tu proposes", non car j'ai raccourci le code pour plus de compréhension mais il y a bien un formulaire avec FORM.
Je souhaite effectivement que les valeurs de champ1 soient prises dans la BDD mais elle ne seront pas indépendantes de ce que l'utilisateur fait avec le formulaire car récupérées au moment où l'utilisateur clique donc cela dépendra de l'enregistrement sélectionné.
tintin
Re: Transmettre une variable depuis un formulaire
Posté : 31 janv. 2012, 13:02
par moogli
Hum, il serait peux être plus de clarifier la chose
Je ne dit pas que tu ne sache pas ce que tu veux, simplement que l'on ne comprend tes explications.
Peux êtreque revoir
la validation d'un formulaire t'amenerais la solution
On est pas contre le code si tu utilise les balise associées (notamment php

).
Quand a ma syntaxe j'en suis certain mais elle reflète ce que j'ai compris de ton problème
@+
Re: Transmettre une variable depuis un formulaire
Posté : 31 janv. 2012, 14:26
par sirakawa
Si je comprends bien, il existe:
un formulaire rempli par l'utilisateur
Tu voudrais que, quand l'utilisateur valide le formulaire, metton en indiquant son identificateur, les valeurs champ1 et champ2 de la BDD qui correspondent à cet identificateur soient transmises plus loin.
Si c'est le cas, il serait bien plus simple de les récupérer dans le script appelé par le formulaire.
genre :
// à ce niveau on ignore tout des valeurs adéquates de champ1 et champ2
<form method ='post' action ='suite.php'>
<input type='text' name ='id' />
<button type= 'submit'>
</form>
dans suite.php
$id = "$_POST['id']; //asorti de précautions suplémentaires
et ici une requête mysql pour récupérer les champs1 et 2...
Transmettre une variable depuis un formulaire
Posté : 31 janv. 2012, 16:10
par tintin
Tout d'abord, mille (et une) excuses à tous les contributeurs car je suis en train de mélanger 2 de mes souçis et de toute évidence il n'y a pas de formulaire dans mon script ....

. Celui-ci est donc le suivant :
echo '<table border="0" cellpadding="0" cellspacing="0" width="690">'."\n";
while ($rows=mysql_fetch_array($result))
{
echo '<tr>';
echo '<td width="590">'.'<a href="test.php" title="Accéder au test">'.stripslashes($rows['prenom']).'</a>'.' (<I>'.ucfirst($rows['nom']).'</I>), '.$rows['adresse'].'</td>';
}
mysql_free_result($result);
J'ai donc une liste de liens qui s'affichent, tous pointant vers le fichier test.php et la valeur de Champ1 variant à chaque enregistrement, je souhaite passer vers la page test.php la valeur que prend ce Champ1 au moment où l'internaute clique.
Encore désolé, je promets d'être plus attentif la prochaine fois, ça m'apprendra à faire 2 choses à la fois.
tintin
Transmettre une variable depuis un formulaire
Posté : 01 févr. 2012, 09:42
par tintin
Bonjour,
Si je vous suis bien, je dois insérer ma boucle while dans un formulaire, c'est bien ça ?
tintin
Re: Transmettre une variable depuis un formulaire
Posté : 01 févr. 2012, 11:15
par xTG
Pour ce que j'observe de ton dernier code pas de formulaire nécessaire.
Un lien tel que te l'a exposé
Mooglisuffira.

Transmettre une variable depuis un formulaire
Posté : 01 févr. 2012, 11:42
par tintin
Rebonjour à tous,
Merci à xtg pour ta réponse.
Je comprends bien la méthode pour récupérer la valeur de Champ1 dans le fichier cible mais le truc est le suivant : concernant test.php?champ1=xxx, je souhaite donc que xxx prenne pour valeur le contenu de champ1 au moment où l'internaute clique sur le lien mais je ne connais pas la syntaxe qui me permet de le réaliser: xxx = ??????
Encore merci
tintin
Re: Transmettre une variable depuis un formulaire
Posté : 01 févr. 2012, 12:06
par xTG
$maVariable = 1;
echo '<a href="maPage.php?maVariable=' . $maVariable . '">lien</a>';
Transmettre une variable depuis un formulaire
Posté : 01 févr. 2012, 12:31
par tintin
Rebonjour,
Je remercie de nouveau Xtg pour son post.
Je comprends bien le procédé de la concaténation avec la variable mais mon soucis est réellement la récupération de la valeur prise par le champ Champ1 au moment du clic et tu ne l'abordes pas.
Un dernier effort ?
Encore merci
tintin
Re: Transmettre une variable depuis un formulaire
Posté : 01 févr. 2012, 12:39
par xTG
Ah j'avais pas compris...
Ton champs1 est en base de données et là ça pose un autre problème.
L'instant du clic ? C'est une action côté client.
Or PHP s'exécute côté serveur ! Lorsque la page s'affiche PHP a déjà fini de s'exécuter.
Alors les données affichées datent du moment juste avant l'affichage.
Quelle est la structure de ta table ? Quelle est la structure de ton opération ?
Tu veux envoyer la dernière ligne d'une table ? Ou bien la dernière valeur mise à jour dans une ligne ?
Dans les deux cas tu peux en fait te passer de transmettre la valeur. (sauf dans le second où il faut faire transiter la clé primaire MAIS pas la valeur à l'instant t concernée par ton traitement)
Car si on prend le raisonnement inverse, l'instant où clique l'utilisateur c'est à peu d'approximation l'instant où va s'exécuter la page qu'il a appelée côté serveur.
Transmettre une variable depuis un formulaire
Posté : 01 févr. 2012, 13:06
par tintin
Rebonjour,
Pas de soucis Xtg et encore merci pour ton aide. La structure de la table est la suivante :
nom: varchar(30)
adresse: varchar(50)
Champ1: varchar(20)
Champ2: varchar(20)
Ma boucle While affiche en effet une liste de noms et d'adresses prises dans cette table et je souhaite passer la valeur prise par le champ Champ1 à la page test.php
Suis-je suffisamment clair.
tintin