Php liaison liste deroulante

ps6c0tic
Invité n'ayant pas de compte PHPfrance

26 juin 2013, 13:05

Bonjour tout le monde, je suis sur le point de perdre la boule :D, je suis débutant en php et null en javascript.
Voilà j'essaie de réaliser un formulaire ou il y a deux listes deroulante, lorsque je choisis une option precise au niveau de la premiere liste, la deuxieme doit s'activer sinon ben elle doit rester grisé.
J'ai essayé des codes en javascript et vu que je suis null ben je n'ai pas su m'y prendre peut être, voilà mon code: pouvez vous me dire comment faire et bien sur si vous pensez que je peux apporter des améliorations au niveau de sécurité ...
<?php
session_start();
$nom=$_SESSION['nom'];
$matricule=$_SESSION['matricule'];
?>
<title>Page de demande</title>
<?php include('../charte/corps.php');?>
<body>
<form method="post" action="test_formulaire.php">
<div>
<table border="1" width="1024" align="center">
	<tbody>
	<tr>
			<td>Matricule</td>
			<td>Date Sortie</td>
			<td>Date Retour</td>
			<td>E-mail CDP</td>
			<td>Type de cong&eacute;</td>
			<td>a ne pas afficher</td>
			</tr>
	</tbody>
		
	
	<tr>
		<td><input type="text" id="nom" name="nom" value="<?php echo $nom;?>" readonly="readonly" required/></td>
		<td><input type="date" id="date_depart" name="date_depart" required/></td>
		<td><input type="date" id="date_retour" name="date_retour" required/></td>
		<td><input type="email" id="email" name="email" required/></td>
		<td><select id="choix" name="choix" required><option></option><option value="conge_normal">Cong&eacute; normal</option><option value="conge_sans_solde">cong&eacute; sans solde</option><option value="conge_exceptionnel">cong&eacute; exceptionnel</option></select></td>
		<td><select id="liste_choix">
		<option></option>
		<option>4 jours (Mariage)</option>
		<option>3 jours (Naissance)</option>
		<option>1 jour (Mariage d'un enfant)</option>
		<option>2 jours (D&eacute;c&egrave;s du conjoint ou d'un enfant)</option>
		<option>2 jours (d&eacute;c&egrave;s d'un ascendant)</option>
		<option>1 jour (d&eacute;c&egrave;s d'un fr&egrave;re, d'une soeur, ...)</option>
		<option>4 jours (Mariage) J1</option>
		<option>4 jours (Mariage) J2</option>
		<option>4 jours (Mariage) J3</option>
		<option>4 jours (Mariage) J4</option>
		<option>2 jours (D&eacute;c&egrave;s du conjoint ou d'un enfant) J1</option>
		<option>2 jours (D&eacute;c&egrave;s du conjoint ou d'un enfant) J2</option>
		<option>3 jours (Naissance) J1</option>
		<option>3 jours (Naissance) J2</option>
		<option>3 jours (Naissance) J3</option>
		<option>2 jours (d&eacute;c&egrave;s d'un ascendant) J1</option>
		<option>2 jours (d&eacute;c&egrave;s d'un ascendant) J2</option>
		<option>CCMX Rattrapage</option>
		<option>1 jour (D&eacute;c&egrave;s beau-p&egrave;re ou belle-m&egrave;re)</option>
		</select></td>
		</tr>
	
</table>
</div>
<br/><br/><br/><br/>
		<center>
		<input type="submit"/ class="deconnect">
		<button type="button" class="deconnect" onclick="">Modifier</button>
		</center>
	</form>

ViPHP
ViPHP | 2577 Messages

26 juin 2013, 13:32

A mon avis, il faut utiliser l'attribut ONCHANGE du select qui déclenche la modification pour appeler une fonction javascript qui modifie les caractéristique du second select. Passe en paramètre de la fonction javascript la valeur selectionnée.
Le plus simple est de changer l'attribut class du second select pour l'activer ou non dans la fonction.

ps6c0tic
Invité n'ayant pas de compte PHPfrance

26 juin 2013, 14:36

oui mais je ne sais pas quoi écrire dans ma fonction javascript :?

ViPHP
ViPHP | 2577 Messages

26 juin 2013, 15:35

Des chose comme document.nomduformulaire.nomdusecondselect.class = 'qq chose'
Et des tests sur document.nomduformulaire.nomdupremierselect.value

Je ne maitrise pas le javascript, mais il y a plein d'exemple qui trainent avec la description des objets.

ps6c0tic
Invité n'ayant pas de compte PHPfrance

26 juin 2013, 16:04

voila j'ai réussi à le faire youhou !! :D
merci beaucoup Mazarini pour ton orientation et ton aide, voilà le code marche à merveille:
<?php
session_start();
$nom=$_SESSION['nom'];
$matricule=$_SESSION['matricule'];
?>
<html>
<title>Page de demande</title>
<?php include('../charte/corps.php');?>
<body>
<form method="post" action="test_formulaire.php" id="formulaire" name="formulaier">
<div>
<table border="1" width="1024" align="center">
	<tbody>
	<tr>
			<td>Matricule</td>
			<td>Date Sortie</td>
			<td>Date Retour</td>
			<td>E-mail CDP</td>
			<td>Type de cong&eacute;</td>
			<td>a ne pas afficher</td>
			</tr>
	</tbody>
		
	
	<tr>
		<td><input type="text" id="nom" name="nom" value="<?php echo $nom;?>" readonly="readonly" required/></td>
		<td><input type="date" id="date_depart" name="date_depart" required/></td>
		<td><input type="date" id="date_retour" name="date_retour" required/></td>
		<td><input type="email" id="email" name="email" required/></td>
		<td><select id="choix" name="choix" required onchange="aff()"><option></option><option value="conge_normal">Cong&eacute; normal</option><option value="conge_sans_solde">cong&eacute; sans solde</option><option value="conge_exceptionnel">cong&eacute; exceptionnel</option></select></td>
<script language="javascript">
function aff() {

	if(document.forms["formulaire"].elements["choix"].value=='conge_exceptionnel'){
		document.forms["formulaire"].elements["liste_choix"].disabled='';}
	else {
	
	
		document.forms["formulaire"].elements["liste_choix"].disabled='disabled';
	}

}
</script>
		<td><select id="liste_choix" name="liste_choix" disabled="disabled">
		<option></option>
		<option value="4 jours (Mariage)">4 jours (Mariage)</option>
		<option value="3 jours (Naissance)">3 jours (Naissance)</option>
		<option value="1 jour (Mariage d'un enfant)">1 jour (Mariage d'un enfant)</option>
		<option value="2 jours (D&eacute;c&egrave;s du conjoint ou d'un enfant)">2 jours (D&eacute;c&egrave;s du conjoint ou d'un enfant)</option>
		<option value="2 jours (d&eacute;c&egrave;s d'un ascendant)">2 jours (d&eacute;c&egrave;s d'un ascendant)</option>
		<option value="1 jour (d&eacute;c&egrave;s d'un fr&egrave;re, d'une soeur, ...)">1 jour (d&eacute;c&egrave;s d'un fr&egrave;re, d'une soeur, ...)</option>
		<option value="4 jours (Mariage) J1">4 jours (Mariage) J1</option>
		<option value="4 jours (Mariage) J2">4 jours (Mariage) J2</option>
		<option value="4 jours (Mariage) J3">4 jours (Mariage) J3</option>
		<option value="4 jours (Mariage) J4">4 jours (Mariage) J4</option>
		<option value="2 jours (D&eacute;c&egrave;s du conjoint ou d'un enfant) J1">2 jours (D&eacute;c&egrave;s du conjoint ou d'un enfant) J1</option>
		<option value="2 jours (D&eacute;c&egrave;s du conjoint ou d'un enfant) J2">2 jours (D&eacute;c&egrave;s du conjoint ou d'un enfant) J2</option>
		<option value="3 jours (Naissance) J1">3 jours (Naissance) J1</option>
		<option value="3 jours (Naissance) J2">3 jours (Naissance) J2</option>
		<option value="3 jours (Naissance) J3">3 jours (Naissance) J3</option>
		<option value="2 jours (d&eacute;c&egrave;s d'un ascendant) J1">2 jours (d&eacute;c&egrave;s d'un ascendant) J1</option>
		<option value="2 jours (d&eacute;c&egrave;s d'un ascendant) J2">2 jours (d&eacute;c&egrave;s d'un ascendant) J2</option>
		<option value="CCMX Rattrapage">CCMX Rattrapage</option>
		<option value="1 jour (D&eacute;c&egrave;s beau-p&egrave;re ou belle-m&egrave;re)">1 jour (D&eacute;c&egrave;s beau-p&egrave;re ou belle-m&egrave;re)</option>
		</select></td>
		</tr>
	
</table>
</div>
<br/><br/><br/><br/>
		<center>
		<input type="submit"/ class="deconnect">
		<button type="button" class="deconnect" onclick="">Modifier</button>
		</center>
	</form>
</html>