Liste déroulante "selected"

blutch38 Messages postés 17 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 21 mars 2007 - 6 déc. 2006 à 08:58
mrjulien Messages postés 38 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 28 novembre 2007 - 6 déc. 2006 à 15:05
voila pouvez vous m'eclairé sur ce bout de code ?

<select name="affaire" id="affaire">
<option value="-1">- - - Choisissez une affaire - - -</option> 
            <?php  
            for($d = 0; $d<$nd; $d++)
            { // code_affaire rempalcé par no_affaire
                ?>
  <option value="<?php echo($no_affaire[$d]); ?>"<?php echo((isset($affaire_selectionne) && $affaire_selectionne == $code_affaire[$d])?" selected="selected"":null); ?>><?php echo($code_affaire[$d]." (". $no_affaire[$d] .")"); ?></option>
                <?php
            }
?>
</select>

ce ci est mon option value de ma 2nd liste déroulante (ce ki saffiche dans la 2eme lorsque je fait un choix dans une 1ere liste)
Le probleme, lorsque je fait mon submit, la 1ere liste reste bien sur le bon index mais la 2eme (celle-ci) se remet au début de la liste :( et moi je voudrai kelle reste sur celui que jai selectionné meme aprés le submit (mon submit ne fait que renvoyer le formulaire pour information)
merci

To be awe ...
It's The Life ! ;)

9 réponses

flor003 Messages postés 118 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 19 juin 2007
6 déc. 2006 à 09:50
salut
ce code me di quelque chose.
<?php echo((isset($_POST['1ere_liste_deroulante']) && $_POST['2eme_liste_deroulante'] = =
ou
if(isset($_POST['1ere_liste_deroulante']) && $_POST['affaire'] ! = "")
{
    $1ere_liste_deroulante = $_POST['1ere_liste_deroulante'];
    $affaire_selectionne = $_POST['affaire'];
}
a+
0
flor003 Messages postés 118 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 19 juin 2007
6 déc. 2006 à 09:52
suite du message validé par mon subconscient (qui me joue des tours).
<select name= "affaire" id="affaire">
<option value="-1">- - - Choisissez une affaire - - -</option> 
            <?php  
            for($d = 0; $d<$nd; $d++)
            { // code_affaire rempalcé par no_affaire
                ?>
 
<option value="<?php echo($no_affaire[$d]); ?>"<?php echo((isset( $1ere_liste_deroulante ) && $affaire_selectionne = = $code_affaire[$d])?" selected="selected"":null); ?>><?php
echo($code_affaire[$d]." (". $no_affaire[$d] .")");
?></option>
                <?php
            }
?>
</select>
0
blutch38 Messages postés 17 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 21 mars 2007
6 déc. 2006 à 10:02
ha ba na ...
dans tout les cas apré mon submit ca me remet sur : - - - Choisissez une affaire - - -

To be awe ...
It's The Life ! ;)
0
blutch38 Messages postés 17 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 21 mars 2007
6 déc. 2006 à 10:14
sans oublier les index non défini ...
moi ce ke jve c'est qu'apres mon submit sur cette liste déroulante, il reste sur l'index selectionnée !!!

sur ma 1ere liste déroulante si dessous ca marche bien :(

<legend>Sélectionnez un client</legend>
<select name="client" id="client" onChange="document.forms['chgaff'].submit();">
  <option value="-1">- - - Choisissez un client - - -</option>
    <?php
    for($i = 0; $i < $nb_clients; $i++)
    {
?>
  <option value="<?php echo($code_client[$i]); ?>"<?php echo((isset($idr) && $idr == $code_client[$i])?" selected="selected"":null); ?>><?php echo($client[$i]); ?></option>
<?php
    }
    ?>
</select>

To be awe ...
It's The Life ! ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
flor003 Messages postés 118 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 19 juin 2007
6 déc. 2006 à 10:34
les listes déroulantes sont bien liées.
Cest a dire que kan on selectionne  laffaire c laffaire du client deja selectionné?
0
blutch38 Messages postés 17 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 21 mars 2007
6 déc. 2006 à 10:53
Non,
dans la 1ere liste tu selectionne un client et aprés dans la 2eme liste apparaissent les affaires du client concerné

______       ___________________   __________
|Fnac   |      | ---selectionne affaire--- |  | VALIDER  |
--------       -------------------------   -------------
                  | affaire N°1                    |
                  --------------------------
                  | affaire N°2                    |

                  --------------------------

Si tu selectionne fnac ca va afficher : ---selectionne affaire--- et dans cette liste déroulante tu aura le choise de l'aff n°1 et n°2
aprés kan je selectionne l'affaire, ca maffiche les detail de celle ci (aprés apré ke jai appuier sur VALIDER) mais dans la 2nd liste déroulante ca me remet sur : ---selectionne affaire--- . Alors que jai besoin que ca reste sur laffaire selectionné car il fo que je fasse un $_POST dessus dans le traitement de mon formulaire plus bas.
jespere que jai été clair

To be awe ...
It's The Life ! ;)
0
flor003 Messages postés 118 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 19 juin 2007
6 déc. 2006 à 11:11
ca doit faire ca jai pas testé :

if(isset($_POST['client'])){$le_client=$_POST['client'];}
if(isset($_POST['affaire']) && $_POST['affaire'] != "")
{
    $client_selectionne = $_POST['client'];
    $affaire_selectionne = $_POST['affaire'];
}

$req = "SELECT num_client, nom_client FROM clients ORDER BY num_client;";
    $rech_cli = mysql_query($req);
    $code_cli = array();
    $client = array();
    /* On active un compteur pour les clients */
    $nb_cli = 0;
    if($rech_cli != false)
    {
        while($row = mysql_fetch_assoc($rech_cli))
        {
            array_push($code_cli, $row['num_cli']);
            array_push($client, $row['nom_cli]);

            /* On incrémente le compteur */
            $nb_cli++;
        }
    }
    ?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" id="client" name="client">
                    marque <select name="client" id="client" onchange="document.forms['client'].submit();">
                        <option value="-1">- - - Choisissez un client - - -</option>
                        <?php
                        for($i = 0; $i < $nb_cli; $i++)
                        {
                        ?>
                              <option value="<?php echo($code_cli[$i]); ?>"<?php echo((isset($le_client) && $le_client == $code_cli[$i])?" selected="selected"":null); ?>><?php echo($client[$i]); ?></option>
                        <?php
                        }
                        ?>
                    </select>
                    <?php
                        mysql_free_result($rech_cli);
                    /* On commence par vérifier si on a envoyé un numéro de client et le cas échéant s'il est différent de -1 */

                    if(isset($le_client) && $le_client != -1)
                        {
                            /* Création de la requête pour avoir les affaires du client */                        $req2 "SELECT num_affaire, nom_affaire FROM affaire WHERE num_affaire '".$le_client."' ORDER BY num_affaire;";
       
                        $rech_affaire = mysql_query($req2);
                        /* Un petit compteur pour les modèles */
                        $nb_affaire = 0;
                        /* On crée deux tableaux pour les numéros et les noms des modèles */
                        $code_affaire = array();
                        $nom_affaire = array();
                        /* On va mettre les numéros et noms des modèles dans les deux tableaux */
                        while($row2 = mysql_fetch_assoc($rech_affaire))
                        {
                            array_push($code_affaire, $row2['num_affaire']);
                            array_push($nom_affaire, $row2['nom_affaire']);
                            $nb_affaire++;
                        }
                            /* Maintenant on peut construire la liste déroulante */
                            ?>
                   
                        affaire <select name="affaire" id="affaire">
                        <?php 
                        for($d = 0; $d<$nb_affaire; $d++)
                        {
                        ?>
                              <option value="<?php echo($code_affaire[$d]); ?>"<?php echo((isset($affaire_selectionne) && $client_selectionne == $code_affaire[$d])?" selected="selected"":null); ?>><?php echo $nom_affaire[$d]; ?></option>
                        <?php
                        }
                        ?>
                    </select>
                    <?php
                        
                        /* Un petit coup de balai */
                    mysql_free_result($rech_affaire);
                       }
                    ?>
                   
                </form>
0
blutch38 Messages postés 17 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 21 mars 2007
6 déc. 2006 à 11:33
<?php
if(isset($_POST['ok']) && isset($_POST['affaire']) && $_POST['affaire'] != "")
{
    $client_selectionnee = $_POST['client'];
    $affaire_selectionne = $_POST['affaire'];
}
?>
Trouver une affaire
<?php

if($renta != false)
{
    $sql1 = "SELECT `Nro_Cli`, `Nom_Cli`".
    " FROM `CLIENT`".
    " ORDER BY `Nom_Cli`";
    $rech_clients = mysql_query($sql1);
    $code_client = array();
    $client = array();
    /* On active un compteur pour les clients */
    $nb_clients = 0;
    if($rech_clients != false)
    {
        while($ligne = mysql_fetch_assoc($rech_clients))
        {
            array_push($code_client, $ligne['Nro_Cli']);
            array_push($client, $ligne['Nom_Cli']);

            /* On incrémente de compteur */
            $nb_clients++;
        }
    }
    //"<?php echo($_SERVER['PHP_SELF']); ? >"
    ?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgaff" name="chgaff">

<legend>Sélectionnez un client</legend>
<select name="client" id="client" onChange="document.forms['chgaff'].submit();">
  <option value="-1">- - - Choisissez un client - - -</option>
    <?php
    for($i = 0; $i < $nb_clients; $i++)
    {
?>
  <option value="<?php echo($code_client[$i]); ?>"<?php echo((isset($idr) && $idr == $code_client[$i])?" selected="selected"":null); ?>><?php echo($client[$i]); ?></option>
<?php
    }
    ?>
</select>
    <?php
    mysql_free_result($rech_clients);
    /* On commence par vérifier si on a envoyé un numéro de client et le cas échéant s'il est différent de -1 */
   
    if(isset($idr) && $idr != -1)
    {
        /* Cération de la requête pour avoir les affaires de ce client */
        $sql2 = "SELECT `CLIENT_Nro_Cli`, `Nom_Aff`, `Nro_Affaire`".
        " FROM `AFFAIRE`".
        " WHERE `CLIENT_Nro_Cli` = ". $idr ."".
        " ORDER BY `CLIENT_Nro_Cli`;";
        if($renta != false)
        {
            $rech_affaire = mysql_query($sql2, $renta);
            /* Un petit compteur pour les affaires */
            $nd = 0;
            /* On crée deux tableaux pour les numéros et les noms des affaires */
            $code_affaire = array();
            $nom_affaire = array();
            $no_affaire = array() ;
            /* On va mettre les numéros et noms des affaires dans les deux tableaux */
            while($ligne_affaire = mysql_fetch_assoc($rech_affaire))
            {
                array_push($code_affaire, $ligne_affaire['Nom_Aff']);
                array_push($nom_affaire, $ligne_affaire['CLIENT_Nro_Cli']);
                array_push($no_affaire, $ligne_affaire['Nro_Affaire']);
                $nd++;
            }
            /* Maintenant on peut construire la liste déroulante */
            ?>
<select name="affaire" id="affaire" onChange="document.forms['chgaff'].submit()" >
<option value="-1">- - - Choisissez une affaire - - -</option>
            <?php  
            for($d = 0; $d<$nd; $d++)
            {

                ?>
  <option value="<?php echo($no_affaire[$d]); ?>"<?php echo((isset($affaire_selectionne) && $affaire_selectionne == $code_affaire[$d])?" selected="selected"":null); ?>><?php echo($code_affaire[$d]." (". $no_affaire[$d] .")"); ?></option> 
                <?php
            }
?>
</select>
<?php
        }
        /* Un petit coup de balai */
        mysql_free_result($rech_affaire);
    }
?>

moi j'ai car me basé par rapport a ce que tu ma donnée ne fait que plus membrouiller ! lol (mais jai pas dit que s'etait pas bien !!!)
(jai suppr le bouton et mis le submit sur le onchange dans ma 2eme liste pour éviter au commerciaux davoir trop de bouton a cliker)

To be awe ...
It's The Life ! ;)
0
mrjulien Messages postés 38 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 28 novembre 2007
6 déc. 2006 à 15:05
Une petite idée:

$j = 0;
echo "<select....>";
while (mysql_fetch_array(blabla){
echo "<option value.......";
echo $j === 0 ? ' checked' : '';
$j++;
}

Si l'enregistrement est le numero 0 (les 3 = pour le strictement) l'enregistrement est selectionné dans la liste.

 
0
Rejoignez-nous