form: revenir au form sans effacer?
Posté : 30 déc. 2006, 17:30
Re-Bonjour,
Bon, j'ai peut être parlé trop vite ce matin.
Alors voilà, mon form et mes verifs fonctionnent bien, mais j'ai voulu ajouter un boutton de retour au formulaire à chaque fois qu'une erreur est détectée. Jusque là pas de problème; l'ennui c'est que lors du retour au formulaire si le visiteur a oublié un @ (par exemple), et bien ce que toutes ses données...sont effacées. Dur et agaçant si il doit à nouveau tout ré-écrire, non?
Alors, je sais bien (enfin je crois) que le mieux serait d'utiliser du JS, mais:
1) n'existe-t-il pas une manière de faire ça en php uniquement?
2)et même en JS, les données (corrects) précedentes ne seront elles pas effacées tout de même?
Voici mon form:
et voici mon script (j'en suis asses fier, parce que en fait je l'ai pensé tout seul et j'ai trouvé tout seul la méthode des boutons...après moults tatonnements dois je avouer
Merci de vos bons conseils et avis, pistes et infos
Alors voilà, mon form et mes verifs fonctionnent bien, mais j'ai voulu ajouter un boutton de retour au formulaire à chaque fois qu'une erreur est détectée. Jusque là pas de problème; l'ennui c'est que lors du retour au formulaire si le visiteur a oublié un @ (par exemple), et bien ce que toutes ses données...sont effacées. Dur et agaçant si il doit à nouveau tout ré-écrire, non?
Alors, je sais bien (enfin je crois) que le mieux serait d'utiliser du JS, mais:
1) n'existe-t-il pas une manière de faire ça en php uniquement?
2)et même en JS, les données (corrects) précedentes ne seront elles pas effacées tout de même?
Voici mon form:
Code : Tout sélectionner
<form method="post" action="contform.php">
<table>
<tr><td>Votre Nom : *<input type="text" name="nom" size="20" /></td>
<td>Votre entreprise :<input type="text" name="soc" size="20" /></td></tr>
<tr><td>Secteur activité: * <select name="act">
<option value="0" selected="selected">--------------</option>
<option value="artisan">Artisans</option>
<option value="mode">Mode</option>
<option value="culture">Culture</option>
<option value="service">Service</option>
<option value="restauration">Restauration</option>
<option value="artistique">Artistique</option>
<option value="assoc">Association</option>
<option value="festival">Festival</option>
<option value="particulier">Particulier</option>
<option value="mairie">Mairie</option>
<option value="pme">PME</option>
<option value="pmi">PMI</option>
<option value="communication">Communication</option>
<option value="transport">Transport</option>
<option value="institution">Institution</option>
<option value="prof.liberale">Profession libérale</option>
<option value="medicale">Médical</option>
<option value="paramedical">Para-médical</option>
<option value="autre">Autre</option>
</select></td>
<td>Si besoin, précisez:<textarea name="precise"></textarea></td></tr>
<tr><td>Ville: *<input type="text" name="ville" size="20" /></td>
<td>Département :*
<select name="dpt">
<option value="0" selected="true">--</option>
<option value="64">64</option>
<option value="40">40</option>
</select></td></tr>
<tr><td>Site existant: *<input type="radio" name="choix" value="oui" />Oui
<input type="radio" name="choix" value="non" />Non</td>
<td>Votre email: *<input type="text" name="email" size="25" /></td></tr>
<tr><td>Votre message :<textarea name="mess"></textarea></td>
<td><center><input type="submit" value="envoyer" />
<input type="reset" value="Annuler" /></center></td></tr>
</table>
</form>
<?php
$from = $_POST['email'];
$nom = $_POST['nom'];
$soc = $_POST['soc'];
$act = $_POST['act'];
$preciz = $_POST['precise'];
$ville = $_POST['ville'];
$dpt = $_POST['dpt'];
$email = $_POST['email'];
$point = strpos($email,".");
$aroba = strpos($email,"@");
$adresse_destinataire = '[email protected]';
$objet = 'Contact commercial heprod';
$retour_a = $_POST['retour_a'];
$retour_c = $_POST['retour_c'];
$message = stripslashes(
"Nom:".$_POST['nom'] .
"\n Société:" .$_POST['soc'] .
"\n Activité:" .$_POST['act'] .
"\n Precision:" .$_POST['precise'] .
"\n Ville: " .$_POST['ville'] .
"\n Departement :" .$_POST['dpt'] .
"\n Site existant :" .$_POST['choix'] .
"\n Email de reponse :" .$_POST['email'] .
"\n Message :" .$_POST['mess']);
if(empty($nom))
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Le nom doit être renseigné</b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center>');
die();
}
if(empty($act))
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Le secteur d\'activité doit être renseigné</b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center>');
die();
}
if(empty($ville))
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>La ville doit être renseignée</b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center>');
die();
}
if(empty($dpt))
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Le département doit être renseigné</b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center');
}
if(empty($email))
{
print ("<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Votre email doit être renseigné</b></center>");
die();
}
if($point=='')
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Votre email doit comporter un <b>point</b></b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center>');
die();
}
elseif($aroba=='')
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Votre email doit comporter un <b>\'@\'</b></b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center>');
die();
}
else
{
mail(
$adresse_destinataire, $objet, $message, $from);
print('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Votre demande a été envoyée avec succès !</b>
<br />
<br />
<a href="index.php"><input type="button" name="retour_a" value="retour accueil"/>
</a>
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>.</center>');
exit();
}
?>
Bon, je suis certain que l'on peut faire mieux et plus simple, mais bon, je débute, hein.. Merci de vos bons conseils et avis, pistes et infos