<script language="javascript">
// Sert a interroger une base de donne mysql sans envoi direct de donnees vers le serveur
// ceci est utile pour les controle "listbox" dynamique
// Auteur : AMOIKON Georges Wilfrid alias Willy alias ixtobilly( inspiré dun code pris sur le net www.toutjavascript.com)
function request05(f, fichier, elem1, elem2)
{
var l1 = f.elements[elem1];
var l2 = f.elements[elem2];
var index = l1.selectedIndex;
if(index < 1)
l2.options.length = 0;
else {
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
xhr_object.open("POST", fichier, true);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4)
eval(xhr_object.responseText);
// alert(xhr_object.responseText);
}
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var data = elem1+"="+escape(l1.options[index].value)+"&form="+f.name+"&select="+elem2;
xhr_object.send(data);
// alert(data);
}
} // fin de la fonction
</script>
// Dans ta feuille principale :
<form name=form1 action='post'>
<?
// initialisation de la requete
$sql = "select CODEDIRECTION, LIBELLEDIRECTION from direction order by LIBELLEDIRECTION desc"; // permet d'extraire les codes des Direction de ma BD (Mysql)
// mise en exécution
// Ne pas oublier les instructions (Toi tu utilises ACCESS dc peut être un peut différent)
// $liste = $resultat_sql;
// exploitation des resultats
?>
<select name="direction" id="direction" onChange="request05(this.form,'departement.php','direction','departement');" >
<option value="" selected="selected"></option>
<? if (is_array($liste))
foreach ($liste as $c => $record)
echo "<option value=$record[0] selected>$record[1]</option>";
?>
</select>
<select name="departement" id="departement" >
</select>
</form>
// Fin de ta feuille principale
?>
<?php
// Debut de departement.php
// Tu insères dans cette variable ta requête - Elle est à adapter bien sure -
$query = "select `CODEPARTEMENT`,`LIBELLEDEPARTEMENT` from `departement` where `CODEDIRECTION` ='".$_POST["direction"]."' order by `LIBELLEDEPARTEMENT` desc";
// exploitation des resultats
echo 'var o = null;';
echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
echo 's.options.length = 1;';
// mise en exécution
$liste = $ObjVehicule->selectRecords($query); (selectRecords retourne un fectch array -> le tableau de reponse ki contient les resultats de ta requete - donc a adapter -)
if (is_array($liste))
foreach ($liste as $c => $r)
echo 's.options[s.options.length] = new Option("'.$r["LIBELLEDEPARTEMENT"].'","'.$r["CODEPARTEMENT"].'");';
$ObjVehicule->closeConnection();
// Fin de departement.php
?>
Notes : Sql des tables
--
-- Structure de la table `departement`
--
CREATE TABLE departement (
CODEPARTEMENT int(11) NOT NULL default '0',
CODEDIRECTION int(11) NOT NULL default '0',
LIBELLEDEPARTEMENT varchar(50) default NULL,
PRIMARY KEY (CODEPARTEMENT)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `departement`
--
INSERT INTO departement VALUES (6, 3, 'DRH');
INSERT INTO departement VALUES (5, 3, 'DAP');
INSERT INTO departement VALUES (4, 2, 'CCI');
INSERT INTO departement VALUES (3, 2, 'DE');
INSERT INTO departement VALUES (2, 2, 'DST');
INSERT INTO departement VALUES (1, 2, 'DED');
INSERT INTO departement VALUES (7, 3, 'DCB');
INSERT INTO departement VALUES (8, 1, 'DM');
INSERT INTO departement VALUES (9, 1, 'DECP');
INSERT INTO departement VALUES (10, 1, 'DT');
INSERT INTO departement VALUES (11, 1, 'DEMSP');
-- --------------------------------------------------------
--
-- Structure de la table `direction`
--
CREATE TABLE direction (
CODEDIRECTION int(11) NOT NULL default '0',
LIBELLEDIRECTION varchar(50) default NULL,
PRIMARY KEY (CODEDIRECTION)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `direction`
--
INSERT INTO direction VALUES (6, 'DR ABENGOUROU');
INSERT INTO direction VALUES (5, 'DR BOUAKE');
INSERT INTO direction VALUES (4, 'DR ABIDJAN');
INSERT INTO direction VALUES (3, 'DAC');
INSERT INTO direction VALUES (2, 'DSI');
INSERT INTO direction VALUES (1, 'DO');
INSERT INTO direction VALUES (7, 'DR KORHOGO');
INSERT INTO direction VALUES (8, 'SJFisc');
INSERT INTO direction VALUES (9, 'SGene');
INSERT INTO direction VALUES (10, 'Conseil');
INSERT INTO direction VALUES (0, 'CtrGen');
Bonne chance