Page 1 sur 1

Comment faire apparaître un champ sous condition ?

Posté : 29 mai 2011, 14:33
par Guill0m3
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);

?>

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

Posté : 29 mai 2011, 14:37
par Guill0m3
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>

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

Posté : 29 mai 2011, 18:20
par Ryle
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 ?

Posté : 30 mai 2011, 11:10
par Ez3kiel
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é).