Formulaire

lodia02 Messages postés 34 Statut Membre -  
lodia02 Messages postés 34 Statut Membre -
Bonjour,

Je travaille sur une application de gestion de personnel pour une entreprise.
J'ai un problème avec le formulaire de saisi des salariés.
Je voudrais par exemple si c'est un étranger que je puisse charger dans mon formulaire d'autres champs obligatoires qu'il faut remplir par exemple son titre de séjour ,son pays etc si c'est Français ces champs je ne veux pas qu'elles apparaissent. Donc quand on rempli le formulaire et qu'on arrive sur le choix de la nationalité c'est en ce moment que je veux charger ces infos complémentaires.

Je ne sais si j'ai été claire

Cordialement, LODIA02

6 réponses

wolves'sbrother Messages postés 256 Statut Membre 35
 
La div infos complémentaires apparait si la nationalité choisi est différente de France.
Il y a aussi une fonction qui vérifie que les champs sont bien remplies, si c'est pas le cas le formulaire ne sera pas envoyé.
Si il y a d'autre trucs que t'as pas compris, dit le moi et je t'expliquerai.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>formulaire</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){

$("#nationalite").change(function(){ 
   if($(this).val()!='FRANCE'){$("#complement").show();}
   else $("#complement").hide();
});

 
function check_form(){
    var bool = true;
	$("#infos input").each(function(){
		if($(this).val().replace(/^\s+/g,'').replace(/\s+$/g,'')=='') {   // replace(/^\s+/g,'').replace(/\s+$/g,'') sert a supprimer les espaces
			$(this).css({borderColor :'red'}); 
			bool = false;
		}
	});
	
	if($('#complement').css('display')!='none'){
		$("#complement input").each(function(){
		if($(this).val().replace(/^\s+/g,'').replace(/\s+$/g,'')=='') {
			$(this).css({borderColor :'red'}); 
			bool = false;
		}
	});
	
	}
	 
    return bool;
} 

$('#form').submit(check_form);
  

});
</script>
 <style type="text/css" >
fieldset div{ 
width :400px;
padding : 5px;
 }
 div input,div select { float: right;}
 </style>

</head>
<body>
  
<form id="form" method="post" action="index.php" enctype="multipart/form-data">
<div id="infos">
<fieldset>
<legend>Informations : </legend>
<div><label for="last_name" >Nom: </label><input  id="last_name" type="text" name="last_name"   /> </div>
<div><label for="first_nom">Prenom:</label><input id="first_nom" type="text" name="first_nom"   /></div>
<div><label for="nationalite">Nationalite  :</label><select id="nationalite" name="nationalite">
																<option value="ESPAGNE">ESPAGNE</option>
																<option value="ESTONIE">ESTONIE</option>
																<option value="ETATS-UNIS D AMERIQUE">ETATS-UNIS D AMERIQUE</option>
																<option value="ETHIOPIE">ETHIOPIE</option>
																<option value="FIDJI">FIDJI</option>
																<option value="FINLANDE">FINLANDE</option>
																<option value="FRANCE" selected>FRANCE</option>
																<option value="GABON">GABON</option>
																<option value="GAMBIE">GAMBIE</option>
																<option value="GEORGIE">GEORGIE</option>			
															</select>
</div>
</fieldset>
</div>

<div id="complement" style="display :none">
<fieldset>
<legend>Informations  complementaires: </legend>
<div><label for="num_TS">N° titre de sejour: </label><input id="num_TS" type="text" name="num_TS" /></div>
<div><label for="date_entree">Date d'entrée en france:</label><input id="date_entree" type="text" name="date_entree" value="" /></div>
</fieldset>
</div>
<center><input type="submit" value="valider" /></center>
</form>
 </body>
</html> 
1
Noviceman Messages postés 229 Statut Membre 7
 
Je le ferais en 2 fois après "validé" et en php avec "if" et "else"
if (si la case xx est cochée, on envoi sur le formulaire complémentaire obligatoire.)
else (on poste le commentaire et il est complet)
Il y a peut être mieux...
0
lodia02 Messages postés 34 Statut Membre
 
Merci de votre réponse mais est ce possible d'avoir un exemple concret car la je ne comprend pas très bien.

Bonne jrnée à vs!
0
wolves'sbrother Messages postés 256 Statut Membre 35
 
Ce que je te propose c'est creer une balise :
<div id="cmpts" style="dispay:none"> champs complémentaires</div>

A l'intérieur de cette balise, tu mets les champs qui concernent les étrangers , je suppose que pour la nationalité tu as mis une liste déroulante, tu ajoute une fonction en javascript qui affichera ou pas les champs complémentaires selon la nationalité.

Je te conseille d'utiliser JQuery, ça te facilitera la tache.
Si t'as besoin d'un exemple , dit le moi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lodia02 Messages postés 34 Statut Membre
 
Merci de ta réponse!

oui je voudrais que tu me files un exemple.
0
lodia02 Messages postés 34 Statut Membre
 
merci bcp !

J'ai bien compris.
Peu être un autre soucis ca j travail avec le framework Zend je ne sais pas si c'est possible d'intégré facile ce formulaire dans Zend_Form.

Encore une fois de plus merci
0