Formulaire

berserv
Invité n'ayant pas de compte PHPfrance

13 mars 2007, 10:23

J’ai un formulaire de ce type :

<code>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" name="nom" size="40" >
<input type="text" name="prenom" size="35">
<input type="submit" name="envoi" value="Envoyer”>
</form>
</code>

Est-il possible en php de récupérer les données encodées sans appuyer sur la touche « envoi ».
(Ex. récupérer données nom avant de passer à l'encodage du prénom)

L’utilisateur doit pouvoir passer d’une page à une autre (par un menu) et pouvoir récupérer les données qu’il a encodées précédemment et par la suite s’il le souhaite appuyer sur envoi.
J’ai stocké les données dans les variables de session, mais cela ne fonctionne bien que si j’appuie sur « envoi ».

Merci encore d'aider une novice
[/code]

Mammouth du PHP | 543 Messages

13 mars 2007, 11:08

Hello,

pour faire simple et clair, php est en langage script, donc de traitement, qui s'execute coté serveur, donc au chargement de la page.
Il est donc impossible uniquement avec du PHP d'intéragir avec ce que saisi sur son clavier le client (donc l'internaute).

La méthode serait à chaque appuis sur une touche du clavier, de faire une requete via javascript sur un script php, et mettant a jour des variables de sessions par exemple.

Un script un peu lourd en requetes donc.

Mammouth du PHP | 1029 Messages

13 mars 2007, 11:43

Est-il possible en php de récupérer les données encodées sans appuyer sur la touche « envoi ».
cela suppose que tu as déjà reçu les données.

si oui avec tes variables de session tu fais ceci

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" name="nom" size="40" values="<?php echo $_Session['nom'] ?>">
<input type="text" name="prenom" size="35" values="<?php echo $_Session['prenom'] ?>">
<input type="submit" name="envoi" value="Envoyer”>
</form>

L'expérience est la somme de toutes nos erreurs.

berserv
Invité n'ayant pas de compte PHPfrance

13 mars 2007, 12:08

Oui, si j'appuie sur la touche "envoi" l'affiche se fait correctement.
Mais j'aurais préféré stocker les données lors du passage d'un champ à un autre.
Mais visiblement c'est pas possible.

Mammouth du PHP | 543 Messages

13 mars 2007, 12:16

Je le redis, c'est possible, mais en javascript/ajax

Mammouth du PHP | 1029 Messages

13 mars 2007, 12:22

Si c'est possible, mais pas facile à mettre en place.

en gros

1) on fois que le client quitte le champs, on appelle une fonction Ajax grâce à "onblur".
2) la méthode ajax, récupère la données et l'insère dans une variable de session.

3) tu dépose ta variables de session, je pense qu'il faudra rafraichir la page quand même!(à vérifier).
L'expérience est la somme de toutes nos erreurs.

Berserv
Invité n'ayant pas de compte PHPfrance

14 mars 2007, 11:02

La commande Onblur de javascript fonctionne bien, mais je ne sais pas stocker la valeur dans une variable PHP.
Comment dois-je faire ?

Mammouth du PHP | 543 Messages

14 mars 2007, 11:24

Requete type ajax qui appelle un script php.
En gros sur le onblur tu appelles ta fonction perso javascript, qui elle va créer un objet xmlhttprequest, qui va appeler un script, qui va faire les requetes, etc... etc...
Verifier que le onblur fonctionne ne represente qu'une infime partie du script a réaliser.

Nous sommes la pour debuger des morceaux de code, ou donner des conseils de développement. Mais nous ne ferons pas le développement à ta place.

Il y a énormement de tutoriels sur le Net introduisant à l'ajax, et donnant des exemple assez proches de ce que tu souhaites faire.