Désactiver une liste déroulante php

Fermé
bigbik Messages postés 159 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 1 juillet 2011 - 28 avril 2011 à 16:22
coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 - 2 mai 2011 à 20:03
Bonjour,

aidez moi chers amis à régler mon problème. Le problème que j'ai avec le mon script est qu'il plante. C'est à dire que la désactivation de ma liste déroulante si je choisit OK marche 1 fois sur deux. je comprend pas le pourquoi. help me please


<script type="text/javascript">
function activList(){
document.getElementById("test" ).disabled = true;
document.getElementById("sel" ).onchange = function() {
document.getElementById("test" ).disabled = (document.getElementById("sel" ).value!="OK" );
}
}
</script>


<select id="sel" name="test1" onChange="activList();">
<option value="KO">KO</option>
<option value="OK">OK</option>
</select>

<select id="test" name="test2" disabled="disabled">
<option value="" selected="selected"> </option>
<option value="client_non_interessé">NON INTERESSE</option>
</select>

A voir également:

4 réponses

coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
28 avril 2011 à 17:50
Salut !

Mmmmmm... Tu spécifies un onchange() une fois dans ton <select>, puis une autre fois dans la fonction activList(). Je pense que tu te la compliques...

function activList(){
document.getElementById("test" ).disabled = false;
if (document.getElementById("sel" ).value == "OK" ) {
document.getElementById("test" ).disabled = true;
}
} 


Ou, suivant ton propre code :

function activList() {
document.getElementById("test" ).disabled = (document.getElementById("sel" ).value!="OK" );
} 


Dis-moi si ça marche mieux !
0
bigbik Messages postés 159 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 1 juillet 2011 1
28 avril 2011 à 18:19
Encore merci coeus.

Je vais lancer des tests sans plus attendre. vu le premier problème que j'ai signalé est survenu après plusieurs tests ok. je vais prendre le temps de tester avec ton bout de code et je reviens vers voir le plutot possible

encore merci d'avance
0
bigbik Messages postés 159 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 1 juillet 2011 1
30 avril 2011 à 10:48
Rebonjour coeus,

Excuse moi de te relancer mais j'ai un petit souci parce qu'il semble que j'avais mal compris la demande qui m'a été faite. J'explique en fait 04 personnes ont accès à une interface et chacun à une option qui lui propre dans la liste Déroulante. L'idée et de choisir automatiquement l'option qui va avec le nom d'utilisateur et que la liste soit griser sans pour autant que l'utilisateur ne puisse avoir la main sur la liste sauf pour deux utilisateur qui doivent avoir la main sur toute la liste et choisir les options qu'ils veulent

Merci d'avance pour ton aide
0
coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
2 mai 2011 à 16:32
Salut !

Ok donc si je comprends bien, dans ton cas tu aurais deux utilisateurs normaux qui ont l'option "verrouillée" pour eux sur un choix bien particulier, et deux "administrateurs" qui auront plus de choix, c'est ça ?

À ça, deux petites questions d'abord...

1. Ton site utilise du PHP, vrai ? J'imagine que l'utilisateur doit se connecter, et ensuite son ID ou son username ou quelque chose qui l'identifie, est conservé dans une variable $_SESSION ? Si non, peux-tu m'expliquer comment un utilisateur se connecte et s'identifie ?

2. As-tu réellement besoin que la valeur du choix soit conservée dans une liste déroulante ? Est-ce que ce ne serait pas plus simple de faire comme suit :
- Quand il s'agit d'un utilisateur normal, on ne montre même pas la liste déroulante, on emmagasine simplement la valeur que celle-ci aurait dû avoir, dans une variable SESSION ;
- Quand il s'agit d'un administrateur, alors là on montre la liste déroulante pour qu'il ait le choix

?

Dis-moi ce que tu en penses, on verra après comment on peut procéder ! ;-)
0
bigbik Messages postés 159 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 1 juillet 2011 1
2 mai 2011 à 16:37
a ce qu'on m'a dit j'ai pas besoin de Javascript mais de PHP.
Après mûr réflexion et sur conseille voila ce que je vois faire :
J'explique :
j'ai plusieurs membres dont chacun à accès à sa propre page avec des infos perso. Je cherche à rediriger chaque membre sur sa page perso après l'authentification. Comment faire.

Mes membres se nomment Membre1 - Membre2 - Membre3 - Membre4 - etc... et la page de chaque membre se nomme Membre1.php - Membre2.php - Membre3.php - Membre4.php
etc ....

Voici mopn code :

<?php session_start();
if (($_GET["action"])=="deconnection" && isset($_SESSION["login"]) && isset($_SESSION["pass"]))
{
session_destroy();
echo '<meta http-equiv="refresh" content="3;URL=index.php">';
echo '<center><font color=red><b><br>Vous vous êtes bien déconnecté</b><br /><br />Vous allez être redirigé dans 3 secondes</font><br /><br /><a href="index.php">Ne pas attendre</a></center>';
}
else if (!isset($_SESSION["login"]) && !isset($_SESSION["pass"]))
{
if (isset($_POST["login"]) AND isset($_POST["pass"]))
{

mssql_connect("x.x.x.x","x","x");
mssql_select_db("MEMBRE");
$login= $_POST["login"];
$pass =$_POST["pass"];
$reponse = mssql_query("SELECT * FROM membres WHERE login='$login' AND pass='$pass'");
$donnees = mssql_fetch_array($reponse);if (($donnees["login"]) AND ($donnees['pass']))
{
$_SESSION["login"] = $login;
echo '<meta http-equiv="refresh" content="1;URL=membre1.php">';
}
else
{
echo '<center><font color=red><b><br>Erreur d\'authentification !</b><br />Merci de vérifier vos Informations de connexion</font><br><br><a href="index.php">Retour</a></center>';
}
mssql_close();
}
}
else
{
echo '<center><font color=red><b><br>Erreur !</b><br />Vous êtes déjà connecté </font><br><br><a href="Javascript:history.go(-1)">Retour</a></center>';
}
?>

Je compte bcp sur votre aide pour trouver la solution
0
coeus Messages postés 3019 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
2 mai 2011 à 20:03
Bon je suis un peu limité dans mes moyens pour tester ton code moi-même... Mais ce que je verrais, c'est le
echo '<meta http-equiv="refresh" content="1;URL=membre1.php">'; 

Que je remplacerais par

include('membre1.php');


En fait, tu pourrais facilement faire une page gabarit (ou template) dans laquelle tu n'importes que le contenu de chaque membre grâce à des include();
Ainsi tu t'évites des répétitions pour les informations qui sont pareilles pour tous les membres.

Sinon, ta logique est correcte, tu as la bonne base, tu t'en vas dans la bonne direction. Maintenant, y a-t-il quelque chose qui ne fonctionne pas avec ton code ? Si c'est le cas, qu'est-ce que ça t'affiche ? Y a-t-il un bout de code en particulier qui semble poser problème ?
0