←  Création Web

InfoMars.fr

»

[Php] Formulaire Avec Un Bouton De Validat...

 Photo Alex 02 sept. 2010

Quand on intègre un joli formulaire dans sa page web, on choisit de relooker le bouton de validation. C'est normal. :fumer:

Dans ce cas, on écrira en html :
<input name="validation" src="design/images/envoi.png" value="Envoyer" type="image">

Résultat, on a un joli bouton. Mais c'est après que cela se gâte.

Passons donc à la suite : le traitement des données du formulaire... :8

Bon, il s'agit donc de récupérer dans le script php les valeurs passées dans le formulaire (nom, prenom, adresse email, etc.)
Classiquement on écrit : if (isset($_post['validation'])){ ... // récupération et traitement des données // ...}
Vous savez pourquoi on écrit cela ?
On écrit cela pour que le script contrôle si le serveur a bien reçu la variable dont le nom est "validation".
En d'autre terme, est-ce que l'internaute a cliqué sur le bouton ? Si oui, le script récupère toutes les données envoyées et les traite; sinon, eh bien il passe à la suite...

On écrit cela, mais en fait, on ne devrait pas. :baton:
On ne devrait pas écrire cela car ce script ne fonctionne pas sous IE

Que se passe t-il ?
Quand on clic sur le joli bouton : Internet explorer envoi au serveur toutes les valeur saisies dans le formulaire ... mais... pas la valeur de l'attribut name du joli bouton. :stress:

Que faut-il faire ?
Une solution qui marche est de remplacer
if (isset($_post['validation'])){ ... // récupération et traitement des données // ...}
par
if (isset($_post['monchampperso'])){ ... // récupération et traitement des données // ...}
...
et de créer un champ caché dans le formulaire:
<input [b]type="hidden" [="" b]="" name="monchampperso" value="chainedecaractere">

Vous voyez l'astuce ?
Le script demande au serveur s'il a bien reçu la variable dont le nom est "monchampperso". Et là, il l'a bien reçue, car IE l'a bien envoyé, avec tous les autres champs du formulaire.

J'ai tester, ça marche ! A vous d'essayer.
Un conseil, choisissez un champ caché, avec des valeur utile, comme par exemple :
<input name="date_emission" value="<?php echo date(" y-m-d"="" );="" ?="" type="hidden">">

:chinois:
Répondre

 Photo noisette 03 sept. 2010

yes.gif


dommage ce comportement de IE, ça ne lui ressemble pas transpi.gif
Répondre