listes déroulantes dynamiques + Oracle + Javascript

listes déroulantes dynamiques + Oracle + Javascript - HTML/CSS - Programmation

Marsh Posté le 30-08-2004 à 17:19:32    

Bonjour,
 
Voila j'ai un petit souci : j'ai 2 tables oracle : logiciel et version et je dispose de 2 listes déroulantes contenant les données de chacunes des tables définis avant. Mon but est que lorsque je sélectionne un logiciel, j'aimerais que cela mette à jour la 2ème liste déroulante et que par conséquent je n'ai que les versions correspondantes avec ce logiciel. Je sais que je dois utiliser du javascript mais malheureusement j'ai utilisé pas mal d'exemples sans succès. Qq'un aurait il à me suggérer un autre script, ou bien me corriger celui qui suit. Merci d'avance.
 
<html>
<head>
<title>Exemple</title>
 
<SCRIPT language="javascript">
var oLogiciels = new Array();
 
function Logiciel( idlog, nomlog)
{
    this.idlog = idlog;
    this.nomlog = nomlog;
    this.nomversion = new Array();
}
 
Logiciel.prototype['Identificateur'] = function()
{
    return this.idlog;
}
Logiciel.prototype['Nomlog'] = function()
{
    return this.nomlog;
}
Logiciel.prototype['Ajouternomversion'] = function( idversion, nomversion)
{
    this.nomversion.push( new Version(idversion, nomversion) );
}
 
function Version( idversion, nomversion )
{
    this.idversion = idversion;
    this.nomversion = nomversion;
}
 
Version.prototype['Identificateur'] = function()
{
    return this.idversion;
}
Version.prototype['Nom'] = function()
{
    return this.nomversion;
}
 
function onSelect_Logiciel()
{
    var id = oListeLogiciel.options[oListeLogiciel.selectedIndex].value;
    var count, count2;
 
    while (oListeVersion.options.length > 0)
    oListeVersion.removeChild( oListeVersion.options[0] );
 
    for (count in oLogiciels)
    if (oLogiciels[count].Identificateur() == id)
    {
        for (count2 in oLogiciels[count].nomversion())
        {
            var oVersion = oLogiciels[count].nomversion()[count2];
            var oOption = document.createElement( 'option' );
 
            oOption.value = oVersion.Identificateur();
            oOption.text = oVersion.Nom();
 
            oListeVersion.add( oOption );
        }
 
        oListeVersion.selectedIndex = 0;
        onSelect_Version();
 
        return;
    }
}
 
function onSelect_Version()
{
    var idLogiciel = oListeLogiciel.options[oListeLogiciel.selectedIndex].value;
    var idVersion = oListeVersion.options[oListeVersion.selectedIndex].value;
    var count, count2;
 
    for (count in oLogiciels)
    if (oLogiciels[count].Identificateur() == idLogiciel)
    for (count2 in oLogiciels[count].nomversion())
    if (oLogiciels[count].nomversion()[count2].Identificateur() == idVersion)
    {
        var oVersion = oLogiciels[count].nomversion()[count2];
        return;
    }
}
 
function onLoad()
{
    var oLogiciel;
    var count;
 
    <?
 
    $conn = oci_connect("logitheque","logiciel",'BTEST');
 
    $sql = oci_parse($conn,'SELECT * FROM logiciel ORDER BY nomlog' );
    $res = oci_execute ($sql);
    while ($row = oci_fetch_array( $sql, OCI_BOTH ))
    {
        echo ' oLogiciel = new Logiciel( ' . $row['idlog'] . ', "' . $row['nomlog'] . '" );';
 
        $sql2 = oci_parse($conn, 'SELECT * FROM version ORDER BY nomversion ASC');
        $res2 = oci_execute ($sql2);
        while ($row2 = oci_fetch_array( $sql2, OCI_BOTH))
 
        echo ' oLogiciel.Ajouternomversion(' . $row2['idversion'] . ', "' . $row2['nomversion'] . '" );';
        echo ' oLogiciels.push( oLogiciel );' ;
    }
 
    ?>
 
    for (count in oLogiciels)
    {
        var oOption = document.createElement( 'option' );
        oOption.value = oLogiciels[count].Identificateur();
        oOption.text = oLogiciels[count].Nom();
        oListeLogiciel.add( oOption );
    }
 
    onSelect_Logiciel();
}
 
</SCRIPT>
</head>
<BODY onload=onLoad()>
 
 
<BR><SPAN
style="FONT-WEIGHT: bold; FONT-SIZE: 12px; FONT-FAMILY: Verdana">Logiciel
:</SPAN> <SELECT id=oListeLogiciel
style="FONT-SIZE: 10px; WIDTH: 200px; FONT-FAMILY: Verdana"
onchange=onSelect_Logiciel()></SELECT><BR><BR><SPAN
style="FONT-WEIGHT: bold; FONT-SIZE: 12px; FONT-FAMILY: Verdana">Version
:</SPAN> <SELECT id=oListeVersion
style="FONT-SIZE: 10px; WIDTH: 200px; FONT-FAMILY: Verdana"
onchange=onSelect_nomversion()></SELECT><BR><BR>
</BODY>
</HTML>

Reply

Marsh Posté le 30-08-2004 à 17:19:32   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed