2 formulaires cachés sur même page

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : 2 formulaires cachés sur même page

Re: 2 formulaires cachés sur même page

par Invité » 25 janv. 2011, 21:04

J'ai essayé autre chose :
<div id="autre_adresse" style="display:none">
<form name="autre_adresse" action="livraison.php5" method="post" onSubmit="document.getElementById('autre_adresse').style.display='block';">

Mais ça ne fonctionne toujours pas...
Quelqu'un peut m'aider ?
Merci d'avance.

Re: 2 formulaires cachés sur même page

par Invité » 25 janv. 2011, 16:23

Re,

Bon et bien j'ai essayé de conditionner la présence du style="display:none" en mettant ce code sur les submit :
PREMIER SUBMIT : <input type="submit" name="valid_mon_adresse" id="valid_mon_adresse" value="Submit" onclick="if(document.getElementById('mon_adresse').style.display=='none'){document.getElementById('mon_adresse').style.display='block';document.getElementById('autre_adresse').style.display='none';}"/>
SECOND SUBMIT : <input type="submit" name="valid_autre_adresse" id="valid_autre_adresse" value="Submit" onclick="if(document.getElementById('autre_adresse').style.display=='none'){document.getElementById('autre_adresse').style.display='block';document.getElementById('mon_adresse').style.display='none';}" />

Mais ça ne fonctionne pas ...
Je ne sais pas si c'est cela que tu voulais dire ou pas...

Re: 2 formulaires cachés sur même page

par Mazarini » 25 janv. 2011, 11:31

Bonjour,

Pour les tags :
<div id="autre_adresse" style="display:none">
<div id="mon_adresse" style="display:none">

Il faut conditionner la présence ou non de style="display:none"

De plus il faudrait qu'entre les attributs id et name tu utilises des valeurs différentes pour être tranquille.
<form name="autre_adresse" action="livraison.php5" method="post">
<div id="autre_adresse" style="display:none">
<input type="submit" name="autre_adresse" id="autre_adresse" value="Submit">

Re: 2 formulaires cachés sur même page

par Invité » 25 janv. 2011, 11:01

Bonjour Mazarini et merci pour ta réponse,

Autant pour moi, il manquait juste des variables dans mon premier formulaire...
J'ai rajouté les éléments manquants et ça fonctionne correctement. La bdd est également bien renseignée...

Par contre, je ne vois toujours pas comment résoudre mon second problème, à savoir :
Comment laisser afficher le formulaire choisi après sa validation ? Notamment pour que le client puisse voir les éventuels messages d'erreur s'il a oublié de renseigner certains champs...

Encore merci et A+

Re: 2 formulaires cachés sur même page

par Mazarini » 25 janv. 2011, 09:21

Bonjour,

Il serait bien de faire une distinction entre les 2 formulaires en ajoutant une variable caché qui te permettent de savoir quel formulaire a été utilisé pour la validation. Ainsi tu pourrais sans problème adapter tes traitements en fonction de cette variable.

Une autre solution serai de ne faire qu'un seul formulaire et de te servir du choix entre les 2 adresses fait par l'utilisateur (via bouton radio) pour aiguiller tes traitements.

2 formulaires cachés sur même page

par quiqui » 25 janv. 2011, 03:20

Bonjour,
Je cherche à faire un formulaire qui permet à mes clients d'indiquer une adresse de livraison.
Je propose donc à ces derniers de choisir via des boutons radios entre l'adresse de facturation précédemment renseignée ou une autre adresse.
J'utilise du javascript pour afficher le formulaire correspondant au bouton choisi.

Et voilà ce qui devait arriver... ça ne fonctionne pas ...
Voilà mes deux problèmes :
1/ les boutons de validation des deux formulaires semblent se confondent puisque si je clique sur le submit du premier formulaire (celui = adresse de facturation), les messages d'erreur que j'ai mis dans le second formulaire apparaissent (celui d'une autre adresse).
2/ Je n'arrive pas à laisser afficher le formulaire choisi après sa validation.

A l'aide !!!
Merci d'avance

Voici mes codes :

<script language="javascript">
function choixPersonne(chaine)
{
var a = document.getElementById("mon_adresse");
var b= document.getElementById("autre_adresse");

if (chaine == 'cacher1'){

a.style.display = "block";
b.style.display = "none";
}
else if (chaine == 'cacher2'){

a.style.display = "none";
b.style.display = "block";
}

}
</script>

et dans le body :

<table width="85%" border="0">
<tr>
<td align="left">A mon adresse
<input type="radio" name="personne" id="ouiCli" value="oui" onChange="choixPersonne('cacher1')" /></td>
</tr>
<tr>
<td align="left">A une autre adresse<input type="radio" name="personne" id="nonCli" value="non" onChange="choixPersonne('cacher2')" /></td>
</tr>
</table>


Coordonnées de livraison :
<div id="mon_adresse" style="display:none">
<form name="mon_adresse" action="livraison.php5" method="post">
<label> <br />
<br />
<?php echo $data['civilite'];?> <?php echo $data['prenom'];?> <?php echo $data['nom'];?><br>
<?php echo $data['adresse_login'];?> <?php echo $data['cp_login'];?> <?php echo $data['ville_login'];?><br></label>
<label>
<input type="submit" name="mon_adresse" id="mon_adresse" value="Submit">
</label>
</form>
</div>

<form name="autre_adresse" action="livraison.php5" method="post">
<div id="autre_adresse" style="display:none">

<table width="85%" border="0">
<tr>
<td><div id="cadre_identification">
<table width="100%" border="0">
<tr>
<td colspan="3" align="left"><h4><br>
<div id="decalage4">Vos coordonnées</div>
</h4></td>
</tr>
<tr>
<td colspan="3" align="center"><img src="img/barre-inscription.jpg" width="534" height="13" alt="barre-inscription"></td>
</tr>
<tr>
<td width="3%" align="left"><img src="img/nul-identification.gif" width="2" height="25" alt="nul"></td>
<td width="27%" align="left"><label for="civilite"><div id="decalage20">Civilité * </div></label></td>
<td width="70%" align="left"><div id="decalage8"><label><select name="civilite_livraison" id="civilite_livraison">
<?php
$reponse = $bdd->query('SELECT * FROM civilite');
while ($donnees = $reponse->fetch())
{
?>
<option value="<?php echo $donnees['nom_civilite']; ?>" <?php if (!empty($_POST['civilite_livraison'])) {if ($_POST['civilite_livraison']==$donnees['nom_civilite']) print("selected");} ?>><?php echo $donnees['nom_civilite'];?> </option>
<?php
}
?>
</select></label>
<div class="error"><?php if(isset($erreurcivilite_livraison)) echo $erreurcivilite_livraison;?></div></td>
</tr>
<tr>
<td width="3%" align="left"><img src="img/nul-identification.gif" width="2" height="25" alt="nul"></td>
<td width="27%" align="left"><label for="prenom_livraison"><div id="decalage20">Prénom *</div></label></td>
<td width="70%" align="left"><div id="decalage8"><input type="text" name="prenom_livraison" value="<?php if(isset($prenom_livraison)) echo $prenom_livraison;?>" />
<div class="error"><?php if(isset($erreurprenom_livraison)) echo $erreurprenom_livraison;?></div></div></td>
</tr>
<tr>
<td width="3%" align="left"><img src="img/nul-identification.gif" width="2" height="25" alt="nul"></td>
<td width="27%" align="left"><label for="nom_livraison"><div id="decalage20">Nom *</div></label></td>
<td width="70%" align="left"><div id="decalage8"><input type="text" name="nom_livraison" value="<?php if(isset($nom_livraison)) echo $nom_livraison;?>" />
<div class="error"><?php if(isset($erreurnom_livraison)) echo $erreurnom_livraison;?></div></div></td>
</tr>
<tr>
<td width="3%" align="left"><img src="img/nul-identification.gif" width="2" height="25" alt="nul"></td>
<td width="27%" align="left"><label for="adresse_livraison"><div id="decalage20">Adresse *</div></label></td>
<td width="70%" align="left"><div id="decalage8"><input type="text" name="adresse_livraison" value="<?php if(isset($adresse_livraison)) echo $adresse_livraison;?>" />
<div class="error"><?php if(isset($erreuradresse_livraison)) echo $erreuradresse_livraison;?></div></div></td>
</tr>
<tr>
<td width="3%" align="left"><img src="img/nul-identification.gif" width="2" height="25" alt="nul"></td>
<td width="27%" align="left"><label for="cp_livraison"><div id="decalage20">CP *</div></label></td>
<td width="70%" align="left"><div id="decalage8"><input type="text" name="cp_livraison" value="<?php if(isset($cp_livraison)) echo $cp_livraison;?>" />
<div class="error"><?php if(isset($erreurcp_livraison)) echo $erreurcp_livraison;?></div></div></td>
</tr>
<tr>
<td width="3%" align="left"><img src="img/nul-identification.gif" width="2" height="25" alt="nul"></td>
<td width="27%" align="left"><label for="ville_livraison"><div id="decalage20">Ville *</div></label></td>
<td width="70%" align="left"><div id="decalage8"><input type="text" name="ville_livraison" value="<?php if(isset($ville_livraison)) echo $ville_livraison;?>" />
<div class="error"><?php if(isset($erreurville_livraison)) echo $erreurville_livraison;?></div></div></td>
</tr>
<tr>
<td width="3%" align="left"><img src="img/nul-identification.gif" width="2" height="25" alt="nul"><img src="img/nul-identification.gif" width="2" height="25" alt="nul"></td>
<td width="27%" align="left"><label for="pays_livraison"><div id="decalage20">Pays *</div></label>
<td width="70%" align="left"><div id="decalage8"><label><select name="pays_livraison" id="pays_livraison">
<?php
$reponse = $bdd->query('SELECT * FROM pays_login ORDER BY num_pays_login');
while ($donnees = $reponse->fetch())
{
?>
<option value="<?php echo $donnees['nom_pays_login']; ?>" <?php if (!empty($_POST['pays_livraison'])) {if ($_POST['pays_livraison']==$donnees['nom_pays_login']) print("selected");} ?>><?php echo $donnees['nom_pays_login'];?> </option>
<?php
}
?>
</select></label>
<div class="error"><?php if(isset($erreurpays_livraison)) echo $erreurpays_livraison;?></div></div></td>
</tr>
</table>
</div></td>
</tr>
</table>
<label>
<input type="submit" name="autre_adresse" id="autre_adresse" value="Submit">
</label>
</form>