Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1446 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  liste déroulante dynamique + oracle + php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

liste déroulante dynamique + oracle + php

n°836845
lious
Posté le 30-08-2004 à 17:06:56  profilanswer
 

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>

mood
Publicité
Posté le 30-08-2004 à 17:06:56  profilanswer
 

n°836848
Sebastien
Posté le 30-08-2004 à 17:08:54  profilanswer
 

Change ta balise, ta demande c'est pas du php mais du JS :o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  liste déroulante dynamique + oracle + php

 

Sujets relatifs
variables dynamiqueMigration Oracle-SQL vers BD2-SQL
liste cssprobleme avec un formulaire et liste deroulante
import dynamique[Mysql] le dernier de la liste
Menu dynamique et Frame[SGBD] Tip : Comment installer le client Oracle 10g sous Windows
[DHTML] Tableau dynamique 
Plus de sujets relatifs à : liste déroulante dynamique + oracle + php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR