[RESOLU] Comment faire apparaître un champ sous condition ?

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 : [RESOLU] Comment faire apparaître un champ sous condition ?

Re: Comment faire apparaître un champ sous condition ?

par Ez3kiel » 30 mai 2011, 11:10

Si c'est php, tu peux passer une variable, si(ta condition d'affichage) alors $variable = 'hidden' sinon $variable ='text' et dans ton formulaire, tu mets <input type='<?php echo $variable; ?>'
Si la condition est ok, le formulaire sera visible et en text, sinon il sera hidden (caché).

Re: Comment faire apparaître un champ sous condition ?

par Ryle » 29 mai 2011, 18:20

Tu veux conditionner l'affichage en php ou en javascript ? au chargement de la page ou de façon dynamique en fonction de ce que fait l'utilisateur ?

Si c'est en php, il faut simplement ajouter un if() avec ta condition autour du code dont tu souhaites conditionner l'affichage. Cela nécessite également de découper ta chaine html en plusieurs echo au lieu d'un seul. Tu pourras ainsi spécifier ceux qui doivent être affichés ou non...

En javascript, il faut jouer sur le style du bloc que tu veux afficher, en lui donnant un identifiant unique et en altérant l'attribut display du style du champ que tu fixes à "none" pour le masquer. (tu peux utiliser visibility, mais ca ne fait que rendre invisible la zone mais conserve la disposition de la page)

Re: Comment faire apparaître un champ sous condition ?

par Guill0m3 » 29 mai 2011, 14:37

L'endroit censé être en rouge n'y est pas u_u

il s'agit de ce passage :


<fieldset>
<legend>Type de compte demandé</legend>

<dl>
<dt>Durée&nbsp;:</dt>
<dd>
<input type='radio' id='perma' name='type' value='P' checked='checked'/><label for='perma'>Permanent</label>
<input type='radio' id='temp' name='type' value='T'/><label for='temp'>Temporaire</label>
document.getElementById('nbjours').style.visibility = 'hidden'
</dd>
<dt><label for='nbjours'>Nombre de jours requis dans le cas d'un compte temporaire&nbsp;:</label></dt>
<dd><input type='text' id='nbjours' name='nbjours' value=''/></dd>


</fieldset>

Comment faire apparaître un champ sous condition ?

par Guill0m3 » 29 mai 2011, 14:33

Bonjour, alors voilà, je cherche à faire apparaître un champ sous condition. J'ai mis la police en rouge dans le code pour montrer où se situe mon problème. Il s'agit d'un formulaire d'inscription et je souhaite faire apparaître "nombre de jours dans le cas d'un compte temporaire avec le champ associé". Ne me demandez pas pourquoi je dois faire ce code ^^ je dois juste respecter le sujet (assez cocasse j'avoue) :D

Quelqu'un pourrait-il venir à mon secours ? Merci d'avance

<?php 
include("dbconnect.php");

/*fonctions*/
function VerifierAdresseMail($email) 
{ 
   $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#'; 
   if(preg_match($Syntaxe,$email)) 
      return true; 
   else 
     return false; 
}
/*----------------------------------------------------------*/

if ( isset($_POST) && (!empty($_POST['civilite'])) && (!empty($_POST['type'])) && (!empty($_POST['status'])) && (!empty($_POST['prenom'])) && (!empty($_POST['nomp'])) && (!empty($_POST['email'])) && (isset($_POST['accepter']))) 
{

	$email=htmlentities($_POST['email']); 
	if(VerifierAdresseMail($email)) {
		$civilite=$_POST['civilite'];
		$prenom=$_POST['prenom'];
		$type=$_POST['type'];
		$status=$_POST['status'];
		$nomp=$_POST['nomp'];
		$email=$_POST['email'];
		$nb=$_POST['nbjours'];
		$sql = "INSERT INTO tinscription( civilite,prenom,nomp,email,type,status,nbjours) 
				VALUES('$civilite','$prenom','$nomp','$email','$type','$status','$nb')";
		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br/>'.mysql_error());
		echo 'test';
		echo '<meta http-equiv="refresh" content="','',';url=','?page=success','">';
	}
	else{		
		echo '<meta http-equiv="refresh" content="','',';url=','?page=inscription','">';	
	}	
}
else
{
	echo "<form id='inscription_form' action='?page=inscription' method='post' enctype='multipart/form-data' class='basic FormValidator'>

	<fieldset>
		<legend>Informations personnelles</legend>

		<dl>
			<dd>Veuillez, s'il vous plait, remplir tous les champs.</dd>

			<dt>Civilité&nbsp;:</dt>
			<dd>
				<input type='radio' id='civilite_m' name='civilite' value='M.' checked='checked'/><label for='civilite_m'>M.</label>
				<input type='radio' id='civilite_mme' name='civilite' value='Mme'/><label for='civilite_mme'>M<sup>me</sup></label>
				<input type='radio' id='civilite_mlle' name='civilite' value='Mlle'/><label for='civilite_mlle'>M<sup>lle</sup></label>

			</dd>

			<dt><label for='prenom'>Prénom&nbsp;:</label></dt>
			<dd><input type='text' id='prenom' name='prenom' value=''/></dd>

			<dt><label for='nom'>Nom&nbsp;:</label></dt>
			<dd><input type='text' id='nom' name='nomp' value=''/></dd>
	</fieldset>
	
	<fieldset>
		<legend>Type de compte demandé</legend>

		<dl>
			<dt>Durée&nbsp;:</dt>
			<dd>
				[color=#FF0000]<input type='radio' id='perma' name='type' value='P' checked='checked'/><label for='perma'>Permanent</label>
				<input type='radio' id='temp' name='type' value='T'/><label for='temp'>Temporaire</label>
			</dd>
			<dt><label for='nbjours'>Nombre de jours requis dans le cas d'un compte temporaire&nbsp;:</label></dt>
			<dd><input type='text' id='nbjours' name='nbjours' value=''/></dd>[/color]
				

	</fieldset>
	
	<fieldset>
		<legend>Status</legend>

		<dl>
			<dt>Choisir un status&nbsp;:</dt>
			<dd>
				<input type='radio' id='doc' name='status' value='D' checked='checked'/><label for='doc'>Doctorant</label>
				<input type='radio' id='chercheur' name='status' value='C'/><label for='chercheur'>Chercheur</label>
				<input type='radio' id='stagiaire' name='status' value='S'/><label for='stagiaire'>Stagiaire</label>
				
			</dd>

	</fieldset>
	
	<fieldset>
		<legend>Informations d'identification</legend>
	
	 <!-- / Validation de formulaire -->

	    <dl>
			<dt><label for='email'><strong>Adresse de messagerie&nbsp;:</strong></label></dt>
			<dd>
                <input type='text' id='email' name='email' value=''/>
				<span><em>l'adresse de messagerie doit être sous la forme toto@nomDomaine.[fr, com, org, etc...]</em></span>							
			</dd>			
		</dl>
		</dl>
		
	</fieldset><br/>
	<input type='checkbox' name='accepter' value='oui' /><strong>J'ai lu et accepte <a href='charte_utilisation.php'>les conditions d'utilisation du site</a> 3D World</strong>

					
			<p class='button'>
				<input type='submit' id='creer' name='creer' value='Créer mon compte' class='submit2'/>
				<input type='reset' name='Annuler' value='Annuler' class='submit2'/>
			</p>

</form>";
}
mysql_close($connect);

?>