Formulaire HTML (PHP?) - Programmation
Marsh Posté le 08-02-2001 à 14:00:38
il faut que tu stock les valeurs des champs dans ta page PHP et que tu renvoi vers la premiere page en récupérant ces valeurs grace à PHP (en mettant ces valeurs comme page par défaut)
Marsh Posté le 08-02-2001 à 14:35:22
Je crois avoir compris, dutch, mais j'ai fait quelques essais:
comment transmets-tu les données d'un script php à l'autre?
Du formulaire vers le script de vérification, aucun problème, mais dans l'autre sens (back), toutes les variables semblent devenir null...
Marsh Posté le 08-02-2001 à 21:17:16
mieux vaut le faire en javascript je pense:
<input type="button" name="retour" value="Retour" onClick="history.go(-1)">
Marsh Posté le 08-02-2001 à 21:34:55
Exemple de contrôle en PHP:
La page formulaire.php3 affiche le formulaire ET fait les contrôles. La page est réaffichée tant que les contrôles ne sont pas bons.
Quand ils le sont, on revoie vers un autre script avec HTTP-EQUIV...
En général, je fait tout dans le même script :
Test des valeurs.
Traitement des valeurs si OK, sinon, affichage du formulaire avec un message d'erreur.
Au premier passage, le test des valeurs n'est pas fait car aucune variable n'est envoyée au script (Test de l'existance de la variable du boutton submit par exemple).
Ce genre de contrôle ne vaut le coùt que si on doit faire accès à une base de données pour les vérifications, genre mot de passe, eMail... Pour des contrôles de numéricité ou de longueur comme dans l'exemple, il vaut mieux utiliser JavaScript. Y'a pas d'raison de déranger le serveur pour si peut alors que le navigateur peut le faire !
Dans l'exemple suivant, les valeurs sont renvoyées vers un autre script avec HTTP-EQUIV ! Je l'ai fait juste pour voir... Mais franchement je trouve que c'est pas BÔ !
Exemple de page formulaire.php3
<HTML>
<HEAD>
<?php
// Ici, on commence par tester si le formulaire nous a transmis quelque chose
if ( isset($BTN) )
{
// Si c'est le cas, il faut vérifier les valeurs
if ( strlen($CP) != 5 )
{
// Les valeurs ne sont pas bonnes, on met un message sur la page
$mess = "Le code postal doit comporter 5 chiffres";
}else{
// Les valeurs sont bonnes, ont traite les données du formulaire ou on passe éventuellement le controle à une autre page.
echo("<META HTTP-EQUIV='REFRESH' CONTENT=\"0;URL='Pagesuivante.php3?CP=$CP&VILLE=$VILLE'\">" );
exit();
}
}
?>
</HEAD>
<BODY>
<?php
// Afficher le formulaire avec les anciennes valeurs si elles existent
if (isset( $mess ) )
{
echo("<B>ERREUR DE SAISIE : $mess</B><BR>" );
}
echo("<FORM ID='FRM' ACTION'formulaire.php3'>" );
echo("Code postal : <INPUT type='text' NAME='CP' value='$CP'><BR>" );
echo("Ville : <INPUT TYPE='texte' NAME='VILLE' value='$VILLE'><BR>" );
echo("<INPUT type='submit' name='BTN' value='envoyer'><BR>" );
echo("</FORM>" )
?>
</BODY>
</HTML>
N'hésite pas si t'as des questions.
Marsh Posté le 08-02-2001 à 13:57:53
J'ai réalisé un formulaire en html (dont je vérifie les champs grâce à du PHP).
En cas d'erreur sur un champ, j'ai un bouton 'back' pour revenir en arrière sur le formulaire (déjà, comment code-t-on un bouton 'back'?) mais je voudrais que les champs valides contiennent encore ce qu'a entré l'utilisateur, et que les champs invalides soient vierges.
Comment je code ça?