Recup de variables (dans liste deroulante) sur la meme page

Résolu
Signaler
Messages postés
87
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
17 décembre 2008
-
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
-
Bonjour a tous
Voila mon probleme

J'ai 2 deux listes deroulante dans une page ( une avec les noms des clients et l'autre avec les sites correspondant au client selectionne)
Sur la meme page lorsque je valide ma selection je voudrai recuperer certaine variable
(le code du client et du site serait deja bien avant d'aller plus loin)
mais impossible de recuperer ces variables !!!
De plus pour charger mes listes deroulantes j'utilise des fonctions
Je vous donne le code de la page et ma fonction

<?
session_start();
require "fonctionslistes.php";

if(!isset($r_client))
   $r_client='';
if(!isset($r_site))
   $r_site='';
?>

<!-- le script permet la cohérence entre le site et le client sélectionné-->
<script>
function after_update_list_client()
{
    document.forms["form"].elements["r_site"].value="";
   
    leclient=form.r_client.value;
    <?
    $sql = "SELECT codeclient, codesite, count(codesite) FROM sites group by codeclient having count(codesite)=1";
    $resultat = mysql_query($sql);
    while ($enr = mysql_fetch_array($resultat))
    {
        echo "  if ((leclient) == (".$enr[0].")) {\n";
        echo "    form.r_site.value = ".$enr[1].";\n";
        echo "  } \n";
    }
    ?>
    if(document.forms["form"].elements["r_site"].value=="")
        document.forms.form.submit(); //le submit permet de recharger la liste des sites !
}
<!--------------------------------------------------------------------------------->
function after_update_list_codesite()
{
    lesite=form.r_site.value;
    <?
    $sql = "SELECT codesite, codeclient FROM sites";
    $resultat = mysql_query($sql);
    while ($enr = mysql_fetch_array($resultat))
    {
        echo "  if ((lesite) == (".$enr[0].")) {\n";
        echo "    form.r_client.value = ".$enr[1].";\n";
        echo "  }\n";
    }
    ?>
}
</script>
<!--------------------------------------------------------------------------------->

<form  name="form" method="post" action="index.php?page=Consultation">
<?
if ($admin)
{
    echo \"Client :,
    ";
    affichelisteclientsp($r_client,"r_client",1);
    ?>
    ">
    <?
    echo ", \";
}
?>
<!----------------- TR ------------------>
----

Site :,
<? $sql = "SELECT codeclient, codesite, count(codesite) FROM sites WHERE codeclient='$r_client' GROUP BY codeclient HAVING COUNT(codesite)=1";
$resultat = mysql_query($sql);
$row = mysql_num_rows($resultat);
if($row==0)
    {
    affichelistesitesp($r_site,'r_site',$r_client);
    ?>
    ">
    <?
    }
else
    {
    affichelistesitesp2($r_site,'r_site',$r_client);
    ?>
    ">
    <?
    }
?>,
<?
if ($admin)
    $codeclient=\"\";
else
    $codeclient=$id;
?>

<!----------------- TR ------------------>
----

</form>
<!----------------------------------------------------------------------------->

<?
echo"Nom client : $XXXXX
";
echo"Nom site : $XXXXX
";
?>

//////////////////////////////
//////////////////////////
code de la fonction affichelisteclientsp

function affichelisteclientsp($code,$nom,$allowempty)
{
    $query="SELECT codeclient, nomclient FROM clients ORDER by nomclient";
    $req=mysql_query($query);
    echo "<select name='$nom'  onChange='after_update_list_client()'>";
    if($allowempty!=0)
        echo "<option value=""></option>";
   
    while($line = mysql_fetch_array($req))
    {
        $tmpcode=$line["codeclient"];
        $tmpnom=$line["nomclient"];
        echo "<option";
       
        if($code==$tmpcode)
        {
            echo " selected";
        }
        printf(" value ="%d">%s</option>\n",$tmpcode,$tmpnom);
    }
    echo "</select>\n";
}

Voila je voudrai recup en fin de fichier les 2 variables
Quelqu'un a une idee ????
MERCI pour vos reponses
Atomik29

4 réponses

Messages postés
87
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
17 décembre 2008
1
OK j'ai poste trop vite DESOLE

il fallati que je recharge la page dans ma fonction  after_update_list_codesite()
CAD rajouter a la fin la ligne
document.forms.form.submit();

Merci a ceux qui ont quand meme jete un coup d'oeil
Salut
Atomik29
Messages postés
87
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
17 décembre 2008
1
J'ai oublie un truc
quand je met a la fin la ligne :

echo"Nom client : $r_client
";
je recupere bien le code du client selectionne

pourquoi si je met
echo"Nom client : $r_client
";
je ne recupere pas le code du site associe au client ????

Atomik29
Messages postés
87
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
17 décembre 2008
1
ME SUIS TROMPE
pourquoi si je met
echo"Nom site : $r_site
";

je ne recupere pas le code du site associe au client ????

Atomik29
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
moi j'ecrirais ça comme _ça

  <?php echo $r_client; ?></gras>    ">
...
    <?php echo $r_site; ?>   ">

...
et pourquoi pas
...
echo "Nom client : $codeclient
";
echo "Nom site : $codesite
";