Afficher une option d'un select

Fermé
BapPro Messages postés 46 Date d'inscription samedi 17 janvier 2015 Statut Membre Dernière intervention 4 février 2016 - 8 déc. 2015 à 18:45
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 10 déc. 2015 à 15:49
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 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
9 déc. 2015 à 14:45
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 46 Date d'inscription samedi 17 janvier 2015 Statut Membre Dernière intervention 4 février 2016
9 déc. 2015 à 15:50
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 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 9/12/2015 à 15:58
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 46 Date d'inscription samedi 17 janvier 2015 Statut Membre Dernière intervention 4 février 2016
9 déc. 2015 à 16:05
je l'ai fait ca n'a pas marche
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
10 déc. 2015 à 11:57
"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 46 Date d'inscription samedi 17 janvier 2015 Statut Membre Dernière intervention 4 février 2016
10 déc. 2015 à 14:50
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