Transmettre une variable depuis un formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Transmettre une variable depuis un formulaire

Transmettre une variable depuis un formulaire

par tintin » 04 févr. 2012, 11:21

Bonjour à tous,

Un grand merci à tous les contributeurs et un special thanks to xTG qui a répondu à toutes mes attentes; ca fonctionne comme je le souhaitais.
Je clos cette discussion.
tintin

Re: Transmettre une variable depuis un formulaire

par xTG » 02 févr. 2012, 12:19

Voilà un exemple :

Structure de ma table test : (id, champ)
<?php
include_once('config_et_connexion_bdd.php'); // je zappe le code de la partie connexion BDD c'est pas le coeur du problème
// Récupération (donc après avoir cliqué sur le lien)
if( !empty($_GET['id']) ){
  $res = mysql_query('SELECT champ FROM test WHERE id = ' . mysql_real_escape_string($_GET['id']));
  if( mysql_num_rows($res) == 1 ){
    $result = mysql_fetch_array();
    echo 'Valeur de champ : ' . $result['champ'];
  }else{
    echo 'Erreur : id invalide.';
  }
}

// Listage des valeurs de la table test
$res = mysql_query('SELECT id, champ FROM test');
if( mysql_num_rows($res) > 0 ){
  while( $result = mysql_fetch_array($res) ){
    echo '<a href="?id=' . $result['id'] . '">' . $result['id'] . ' : ' . $result['champ'] . '</a><br />';
  }
}
Si tu as des questions n'hésites pas. :)

Transmettre une variable depuis un formulaire

par tintin » 02 févr. 2012, 11:48

Bonjour à tous,

J'ai l'impression que ma question passionne les foules :)
Xtg est dans le vrai, la valeur à récupérer se trouve bel et bien dans une table, précisément la valeur que prend le champ Champ1 au moment où l'internaute clique sur lien.
Ce que voit l'internaute est extrait de cette table et est par exemple ce qui suit :
  • Albert, 6 impasse Wagram
    Pascale, 12 résidence Kléber
    Quentin, adresse inconnue
    Robert, 4 rue des ponts
Chacune des 4 lignes pointe vers le même fichier test.php et je souhaite passer à la page test.php la valeur que prend le champ Champ1 qui contient les professions. Si je clique sur la ligne 'Albert', je veux passer 'Docteur', si je clique sur 'Pascale', je veux passer 'Infirmière', etc.
Pour aller dans le sens de Xtg, j'ai ajouté un champ id, clef primaire et Autoincrement.
Mon soucis reste le même, comment récupérer la valeur prise par Champ1 au moment du clic.

Merci encore.
tintin

Re: Transmettre une variable depuis un formulaire

par moogli » 02 févr. 2012, 11:02

ça pas l'air super clair c't'affaire :)

@+

Re: Transmettre une variable depuis un formulaire

par xTG » 02 févr. 2012, 10:23

Je croyais que cette valeur était en BDD ??? Alors d'où il vient ce javascript ! :|
Et comme je l'ai dit si c'est en BDD et que cela peut être modifié entre le moment où on affiche le lien et le moment où l'utilisateur clique faut pas s'encombrer avec de l'ajax ou autre saloperie.
Le moment où cliques l'utilisateur c'est le moment où la seconde page se charge, donc passage de clé primaire pour avoir de quoi récupérer dans la BDD la valeur champ1.

Re: Transmettre une variable depuis un formulaire

par moogli » 02 févr. 2012, 09:45

La faut du javascript, tu récupère le la valeur du champ tu créer ton url à la volée et utilise javascript pour la redirection !


@+

Transmettre une variable depuis un formulaire

par tintin » 02 févr. 2012, 09:05

Bonjour,

Merci Xtg de nouveau.
Supposons que Champ1 contienne le mot 'Paris' au moment où l'internaute clique sur le lien, ce que je ne sais pas faire, c'est récupérer la valeur 'Paris' pour avoir test.php?Champ1=Paris.

Merci encore
tintin

Re: Transmettre une variable depuis un formulaire

par xTG » 01 févr. 2012, 19:23

Qu'est ce que tu ne sais pas faire ?
Récupérer le valeur transmise dans l'url ?
L'injecter dans une requête SQL ?
Faire la requête SQL récupérant le champ1 ?

Transmettre une variable depuis un formulaire

par tintin » 01 févr. 2012, 18:20

Ok xtg,

Je crois que l'on est rendu à ta conclusion (ton post d'aujourd'hui 01 Fév 2012 à 12:06), ceci étant, ça ne me dit toujours pas comment récupérer sa valeur .....
tintin

Re: Transmettre une variable depuis un formulaire

par xTG » 01 févr. 2012, 17:40

Dans ce cas tu passes le nom dans l'url.
Puis sur la page de traitement tu peux ainsi refaire une requête avec comme condition de recherche ce nom et récupérer le champ1. ;)

Transmettre une variable depuis un formulaire

par tintin » 01 févr. 2012, 16:32

Bonjour xtg,

Oui, le nom est unique.
tintin

Re: Transmettre une variable depuis un formulaire

par xTG » 01 févr. 2012, 13:52

Le nom est-il unique ? Si ce n'est pas le cas il serait bon de rajouter une clé primaire dans ton schéma.
Ainsi le but reviendrai à mettre dans l'url la valeur de la clé primaire correspondant à la ligne que tu veux.
Et sur la page de traitement tu fais ta requête grâce à cette clé primaire dans l'url et tu obtiens la valeur du champ1 au moment du clic + quelques ns négligeables. ;)

Transmettre une variable depuis un formulaire

par tintin » 01 févr. 2012, 13:06

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

Re: Transmettre une variable depuis un formulaire

par xTG » 01 févr. 2012, 12:39

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

par tintin » 01 févr. 2012, 12:31

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