Menu déroulant

octavianus Messages postés 46 Statut Membre -  
octavianus Messages postés 46 Statut Membre -
Bonjour,
voilà, j'ai 2 menus déroulants pour des commandes de produits, qui proposent chacun 2 possibilités: le 1er est "Règlement" est propose : "reçu" ou "en attente", et le 2nd "Traitée" qui propose "oui" ou "non". Or je voudrais les lier afin que tant que le Règlement est "en attente" , Traitée soit bloqué à "non", et puisse être mise à "oui" quand Règlement est "reçu".
Est-ce que quelqu'un pourrait m'aider? Merci
A voir également:

4 réponses

NookZ Messages postés 2376 Statut Membre 514
 
Voici un exemple de listes déroulantes liées
http://www.thelin.net/laurent/labo/js/listesderoulantes.html

Il ne vous reste qu'à mettre le choix sur Non et un enabled false sur la seconde liste dans le cas où vous êtes sur "traitée".
0
octavianus Messages postés 46 Statut Membre
 
Merci,
Mais j'ai toujours un problème.
Voici mon code :
<table width=100% border="0" cellpadding="0" cellspacing="2" class="couleur_contenu_tableau_commande">
<tr>
<td height=24 width=15%><span class="couleur_libelle_commande" > Règlement : </span></td>

<?php if(($statut==1) && (@$_SESSION['profil']>=3))->pour autoriser les modif aux personnes acréditées
{
?><td class="couleur_contenu_tableau_commande" width=15%>

<!--DEBUT menu liste déroulante-->

<SELECT NAME="Reglement" onChange='Choix(this.form)'> <OPTION>En attente</OPTION> <OPTION>Reçu</OPTION> </SELECT>
<SELECT NAME="Traitée"> <OPTION></OPTION> <OPTION></OPTION> </SELECT>

<!--FIN menu liste déroulante-->

et la fonction JavaScript :
function Choix(form)
{
i = form.Reglement.selectedIndex;
if (i == 0) {
return;
} switch (i) {
case 1 : var txt = new Array ('Non'); break;
case 2 : var txt = new Array ('Oui'); break;
}
form.Reglement.selectedIndex = 0;
for (i=0;i<2;i++) {
form.Page.options[i+1].text=txt[i];
}
}
Cà me donne un parse error
Je crois que j'ai mal interprété votre exemple, voyez vous ce qui cloche? Merci
0
NookZ Messages postés 2376 Statut Membre 514
 
avez-vous la ligne d'erreur?
Je en vois pas d'erreur flagrante

à part si vous n'avez pas fermé le if du php avec <?php}?>
0
octavianus Messages postés 46 Statut Membre
 
Vous avez vu juste pour le "if"
j'ai donc modifié le code comme cela :

<table width=100% border="0" cellpadding="0" cellspacing="2" class="couleur_contenu_tableau_commande">
<tr>
<td height=24 width=15%><span class="couleur_libelle_commande" > Règlement : </span></td>

<?php if(($statut==1) && (@$_SESSION['profil']>=3))
{
?><td class="couleur_contenu_tableau_commande" width=15%>

<!--DEBUT menu liste déroulante-->
<SELECT NAME="Reglement" onChange='Choix(this.form)'> <OPTION>En attente</OPTION> <OPTION>Reçu</OPTION> </SELECT>
<?php
}
?>
<td height=24><span class="couleur_libelle_commande" > Traitée : </span></td>
<?php if(($statut==1) && (@$_SESSION['profil']>=3))
{
?><td class="couleur_contenu_tableau_commande">

<SELECT NAME="Traitée" Onchange="saisie_colis();"> <OPTION > Non </OPTION><OPTION >Oui </OPTION> </SELECT>
<?php
}
?>

Mais réglement "en attente" ne force pas traitée à "non", je ne trouve pas où je dois mettre enable false et comment je dois mettre le choix sur "non"
0
NookZ Messages postés 2376 Statut Membre 514
 
remplacer ça
<SELECT NAME="Traitée" Onchange="saisie_colis();"> <OPTION > Non </OPTION><OPTION >Oui </OPTION> </SELECT>
par (enlever le é de traitée et mettre les id)
<SELECT NAME="Traitee" Onchange="saisie_colis();"> <OPTION id="non"> Non </OPTION><OPTION id="oui" >Oui </OPTION> </SELECT>

et dans le JS :
switch (i) {
case 1 : var txt = new Array ('Non'); break;
case 2 : var txt = new Array ('Oui'); break;
}
form.Reglement.selectedIndex = 0;
for (i=0;i<2;i++) {
form.Page.options[i+1].text=txt[i];
}
par
switch (i) {
case 1 :
document.getElementById('non').selected = true;
form.Traitee.enabled=false; break;
case 2 :
form.Traitee.enabled=true;
break;
}
//ici plus rien

c'est bon?
0
octavianus Messages postés 46 Statut Membre
 
Maintenant que j'ai corrigé le code et ajouté les affichages, lors de mes modifications de commandes, mes menus me permettent bien de prendre le Règlement "En attente" ou "Reçu", mais pas de bloquer Traitée sur "non" quand le Règlement est "En attente", et çà n'enregistre pas les modifs dans la base SQL, mais çà en efface le statut "ou" ou "non"

le code corrigé:

<table width=100% border="0" cellpadding="0" cellspacing="2" class="couleur_contenu_tableau_commande">
<tr>
<td height=24 width=15%><span class="couleur_libelle_commande" > Règlement : </span></td>

<?php if(($statut==1) && (@$_SESSION['profil']>=3))
{
?><td class="couleur_contenu_tableau_commande" width=15%>

<!--DEBUT menu liste déroulante (RAJOUT id pour Règlement)-->
<SELECT id="reglement" NAME="reglement" style="WIDTH: 100px" onChange='Choix(this.form)'>
<OPTION id="en attente">En attente</OPTION>
<OPTION id="recu">Reçu</OPTION>
</SELECT>
</td><?php
}
else
{
?><td><?php echo $etat_reglement;?></td><?php
} ?>

<td height=24 width=45% ><span class="couleur_libelle_commande" > </span></td>

<?php if(($statut==1)&& (@$_SESSION['profil']>=3))
{ ?>
<td rowspan=2 align=center><input type="submit" name="modification_commande" id="modification_commande" style="WIDTH :120px ; HEIGHT : 20px" value="Modifier la commande" title="Enregistrement des modifications" Onclick="return verif_traitee();"></td>
<?php }
else
{ ?>
<td rowspan=2 align=center> </td>
<?php } ?>
</tr>
<tr>
<td height=24 ><span class="couleur_libelle_commande" > Traitée : </span></td>
<?php if(($statut==1) && (@$_SESSION['profil']>=3))
{
?><td class="couleur_contenu_tableau_commande">
<SELECT id="traitee" NAME="traitee" style="WIDTH: 100px">
<OPTION id="non">Non</OPTION>
<OPTION id="oui" >Oui</OPTION>
</SELECT>
</td><?php
}
else
{
?><td><?php echo $traitee;?></td><?php
} ?>

la fonction javascript:

function Choix(form)
{
i = form.reglement.selectedIndex;
if (i == 0) {
return;
} switch (i) {
case 1 :
document.getElementById('non').selected = true;
form.traitee.enabled=false; break;
case 2 :
form.traitee.enabled=true;
break;
}
}

Bref il ne reconnaît pas la variable que je lui demande de stocker : $traitee , que je récupère lors de mes modifications de commandes par ces requêtes SQL:

if(@$_POST["modification_commande"])
{
if(@$_POST["etat_traitee"]=="Non")
{
mysql_query("UPDATE lg_commande SET traitee='$_POST[etat_traitee]',etat_reglement='$_POST[reglement]' where id_commande = '$numero_commande'");
echo "<meta http-equiv=\"refresh\" content=\"0; URL=gestion_commande.php\" >";
exit();
}
else
{
mysql_query("UPDATE lg_commande SET traitee='$_POST[etat_traitee]',etat_reglement='$_POST[reglement]',etat_commande='1',
numero_colis='$_POST[numero_colis]' where id_commande = '$numero_commande'");
echo "<meta http-equiv=\"refresh\" content=\"0; URL=gestion_commande.php\" >";
exit();
}
}

casse-tête!
0