Aller au contenu


[Php] Formulaire Avec Un Bouton De Validation Personnalisé


  • Vous ne pouvez pas répondre à ce sujet
1 reply to this topic

#1 Alex

Alex

    Marsonaute

  • Zimien
  • PipPip
  • 8 Messages :

Posté 02 septembre 2010 - 21:59

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:

#2 noisette

noisette

    Webmarster

  • Admin
  • PipPipPipPipPipPipPipPipPip
  • 20 996 Messages :
  • Gender:Male

Posté 03 septembre 2010 - 13:41

yes.gif


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



1 utilisateur(s) en train de lire ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)