Afficher une option d'un select

BapPro Messages postés 52 Statut Membre -  
Pitet Messages postés 2845 Statut Membre -
Bonjour,
J'ai ce select
 
<select name="claimStatus1"  required>
	    <option >Make a selection</option>	
      <option style="display:none"value="changeEdit.php?id=<?php echo $d['id'];?>#texte">Complete</option>	
	   <option value="notfound.php?id=<?php echo $d['id'];?>#notfound">Not Found</option>	
</select>

Je voudrais afficher l'option cache quand cette condition en javascript est satisfait:
	function showOptions(s){
var NomVariable = '<?php echo $d['role']; ?>';
if (NomVariable=="Supervisor") {
  console.log(s[s.selectedIndex].value).show(); 
}
else{
  console.log(s[s.selectedIndex].value).hide();
}  // get id
}


Je suis coince avec la condition je ne vois pas comment le faire.
Cordialement

1 réponse

Pitet Messages postés 2845 Statut Membre 527
 
Salut,

Si le paramètre s de ta fonction correspond bien à l'élément html select et que l'option à afficher est toujours la 2ème option dans la liste, une solution possible est alors :
if (NomVariable=="Supervisor") {
  s.options[1].style.display = 'block';
}


Attention d'un point de vue sécurité, le contrôle de rôle en javascript peut très facilement être contourné par l'utilisateur. L'idéal serait d'afficher ou non l'option en fonction du rôle directement en php :
<select name="claimStatus1"  required>
	<option >Make a selection</option>
	<?php if ($d['role'] == 'Supervisor') : ?>
	<option style="display:none"value="changeEdit.php?id=<?php echo $d['id'];?>#texte">Complete</option>	
	<?php endif; ?>
	<option value="notfound.php?id=<?php echo $d['id'];?>#notfound">Not Found</option>	
</select>


Bonne journée,
0
BapPro Messages postés 52 Statut Membre
 
ta deuxieme solution est plus professionnelle, je l'ai applique l'option s'affiche meme quand le role est Supervisor

<select name="claimStatus1"  required>
	<option >Make a selection</option>
	<?php if ($d['role'] == 'Supervisor') : ?>
	<option style="display:none"value="changeEdit.php?id=<?php echo $d['id'];?>#texte">Complete</option>	
	<?php endif; ?>
	<option value="notfound.php?id=<?php echo $d['id'];?>#notfound">Not Found</option>	
</select>

peut etre il y a d'autre chose a faire ?
0
Pitet Messages postés 2845 Statut Membre 527
 
La condition indique que l'option est affichée que si le rôle est "Supervisor".
Il faudra par contre supprimer le style display: none qui n'est plus utile maintenant.
0
BapPro Messages postés 52 Statut Membre
 
je l'ai fait ca n'a pas marche
0
Pitet Messages postés 2845 Statut Membre 527
 
"Ca ne marche pas" ne veut pas dire grand chose...
Qu'est ce qui est attendu et qu'est-ce qui est obtenu ?

Le code ci-dessus affiche l'option si le rôle est Supervisor. Pour faire l'inverse il faut simplement inverser la condition :
<select name="claimStatus1"  required>
	<option >Make a selection</option>
	<?php if ($d['role'] != 'Supervisor') : ?>
	<option value="changeEdit.php?id=<?php echo $d['id'];?>#texte">Complete</option>	
	<?php endif; ?>
	<option value="notfound.php?id=<?php echo $d['id'];?>#notfound">Not Found</option>	
</select>
0
BapPro Messages postés 52 Statut Membre
 
Je viens d'essayer quand j'utilise
<?php if ($d['role'] != 'Supervisor') : ?>

l'option complete s'affiche quand le role est Supervisor et quand le role ne l'est pas il s'affiche aussi
quand j'utilise
<?php if ($d['role'] == 'Supervisor') : ?>

l'option complete ne s'affiche plus dans tous les cas. Je voudrais que l'option complete s'affiche seulement quand le role est Supervisor......
Je ne sais plus que faire !!
0