Vérification de formulaire

Résolu/Fermé
csmith35 Messages postés 48 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 1 mai 2013 - 4 mai 2009 à 17:02
csmith35 Messages postés 48 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 1 mai 2013 - 5 mai 2009 à 11:27
Bonjour,

J'ai un petit problème d'optimisation à corriger
J'ai un formulaire qui comporte 3 champs dont 2 obligatoires (dans mon formulaire final il y aura 10 champs dont 2 obligatoires

//Formulaire
if ($step==1)
{ echo '<form method="POST" action="">';
echo '<input type="hidden" name="step" value="2"></td>';
echo 'Nom de la société *';
echo "<input type='text' name='nom' size='60' maxlength='60'>";
echo 'Ville';
echo "<input type='text' name='ville' size='60' maxlength='60'>";
echo 'Téléphone *';
echo "<input type='text' name='tel' size='60' maxlength='20'>";
echo "<input type='submit' value='valider'>";
echo '</form>';
}
// Test du formulaire
elseif (empty($_REQUEST['nom']) || empty($_REQUEST['tel']))
{ echo "le champ nom est obligatioire et le numéro de téléphone sont obligatoires";
}
//Traitement du formulaire
else
{echo $_REQUEST['nom'];
echo $_REQUEST['ville'];
echo $_REQUEST['tel'];
}

Mon problème est le suivant, je souhaite lorsque les champs nom ou tel ne sont pas renseigner, recharger le formulaire avec les données précédement saisies.

Je pensais faire dans mon test de formulaire
$nom=$_REQUEST['nom'];
$ville=$_REQUEST['ville'];
$tel=$_REQUEST['tel'];
<a href="?step=1&nom=$nom&ville=$ville&tel=$tel>cliquer ici</a>

et dans mon formulaire faire pour chaque input
echo "<input type='text' name='nom' size='60' maxlength='60' value="$nom">";

mais cela me parait compliqué (surtout que j'ai que 3 variables dans l'exemple, j'imagine pas l'url avec mes 10 variables), y'a t il une méthode plus simple ?

Merci de votre aide.

3 réponses

csmith35 Messages postés 48 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 1 mai 2013
5 mai 2009 à 09:05
Petit up, siou plait
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
5 mai 2009 à 09:20
Le traitement d'un formulaire se fait avant son affichage.
0
csmith35 Messages postés 48 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 1 mai 2013
5 mai 2009 à 11:27
Problème résolu

J'ai un script de test

<script type="text/javascript">
function valider()
{// si la valeur du champ prenom est non vide
if(document.formSaisie.prenom.value != "") {
// les données sont ok, on peut envoyer le formulaire
return true;
}
else
{ // sinon on affiche un message
alert("Saisissez le prénom");
// et on indique de ne pas envoyer le formulaire
return false;
}
}
</script>

Puis mon php
echo '<div>';
if (empty($_POST['step']))
{?>
<form action="?rub=gfou&t=f" onsubmit="return ValiderFourn()" method="POST" name="formSaisie">
<input type="hidden" name="step" value="1"/>
prenom <input type="text" name="prenom" id="prenom"/>
nom <input type="text" name="nom" id="nom"/>
<input type="submit" value="Ok"/>
</p>
</form>
<?php
}
else
{ // Traitement coté serveur
echo $_POST['prenom'];
}
echo '</div>';

Voilà, le prétraitement est fait si la personne saisie que le nom, on lui dit veuillez saisir prénom et le formulaire n'est pas perdu

Cool
0