-------------------------------Code de la BD ---------------------
-- phpMyAdmin SQL Dump
-- version 2.6.1
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Lundi 17 Octobre 2005 à 18:46
-- Version du serveur: 4.1.11
-- Version de PHP: 4.3.10-16
--
-- Base de données: `marc`
--
-- --------------------------------------------------------
--
-- 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');
-------------------------------Extrait de la classe avec laquelle je fais les acces bd ---------------------
ClsBd.php:
/**********************************************************
**** classe de gestion de l'accès aux données ***
***********************************************************/
class ClsBd
{
var $dbHostName="10.1.50.244"; //Nom du serveur de données
var $dbName="marc"; //Nom de la base de données
var $dbUserName="marc"; //Nom de l'utilisateur légitime de la base de données
var $dbUserPass="marc"; //Mot de passe de l'utilisateur légitime
var $lastConID=0; // Etat de la dernière demande de connexion au serveur
var $lastQueryID=0;//Identificateur de la dernière requête exécutée
var $record=array(); //contient le dernier enregistrement récupéré
var $connectError=1;
var $closeConnectError=2;
var $openDBError=3;
var $selectError=4;
var $IDErreur=null;
//--------------- connexion au serveur de données
// Utilisation
function connect()
{
if ($this->lastConID==0) //La dernière connexion a échoué
{
$this->lastConID=mysql_connect($this->dbHostName, $this->dbUserName,$this->dbUserPass);
if (!$this->lastConID)
{
$this->IDErreur=$this->connectError;
return false;
}
return true;
}
return true;
}
//--------------- ferme la connexion a la base de donnees
// Utilisation
function closeConnection()
{
if (mysql_close($this->lastConID))
{
return true;
}
$this->IDErreur=$this->closeConnectError;
return false;
}
//----------- Active la base de données
// Utilisation
function openDB()
{
if (mysql_select_db($this->dbName,$this->lastConID))
{
return true;
}
$this->IDErreur=$this->openDBError;
$this->closeConnection();
return false;
}
// Utilisation
function executeQuery($strQuery)
{
$ok=false;
if ($this->connect()) //La connexion au serveur de données a reussi
{
if ($this->openDB()) // L'ouverture de la base de données a reussi
{
$this->lastQueryID=mysql_query($strQuery,$this->lastConID);
if ($this->lastQueryID) //La requete s'est execute avec succes
{
$ok=true;
}
}
}
return $ok;
}
//------------- Retourne le nombre d'enregistrements affectes par la derniere requete action
function recordsAffected()
{
return mysql_affected_rows($this->lastConID);
}
//-------------- Retourne le nombre d'enregistrements renvoyés par la dernière requête selection
function recordCount()
{
return mysql_num_rows($this->lastQueryID);
}
//---------------- Retourne l'enregistrement suivant
function nextRecord()
{
$this->record=mysql_fetch_array($this->lastQueryID);
if (!$this->record || !is_array($this->record))
{
return false;
}
else
{
return $this->record;
}
}
function selectRecords($strQuery)
{
if (!$this->executeQuery($strQuery))
{
$this->IDErreur=$this->selectError;
return false;
}
if ($this->recordCount()>0)
{
$returnArray=array();
while($line=$this->nextRecord())
{
$returnArray[]=$line;
}
return $returnArray;
}
return false;
}
}
------------------------------------la feuille html/php-----------------------
<html>
<head>
<title>FICHE DE DEMANDE</title>
<? require_once("ClsBd.php"); ?>
<script language="javascript">
function get_record(critere, form)
{
[code]
var maTable = Array(3);
var i=0;
// Creation d'une instance
$ObjVehicule = new ClsBd();
// initialisation de la requete (probleme car ne sais pas cmt faire passer le js ds le php)
$sql = "select CODEPARTEMENT, LIBELLEDEPARTEMENT from departement where CODEDIRECTION =".critere." order by LIBELLEDEPARTEMENT desc";
// echo $sql;
// mise en exécution
$liste = $ObjVehicule->selectRecords($sql);
if (is_array($liste))
foreach ($liste as $c => $record)
{ var p=new Option($record[1],$record[0]);
form.departement.options[i]=p;
i++;
}
/*maTable["Direction1"] = Array("Departement 1A", "Departement 1B");
maTable["Direction2"] = Array("Departement 2A", "Departement 2B");
maTable["Direction3"] = Array("Departement 3A", "Departement 3B");*/
[/code]
}
</script>
</head>
<body>
<form name="form1" method="post" action="">
<table width="100%" border="0" class="normal">
<tr>
<td colspan="7" align="center"><h4><U>DEMANDE</U></h4></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td colspan="3"> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td width="1%"> </td>
<td width="16%"><strong>Direction</strong></td>
<td width="2%" colspan="2">
<?
// Creation d'une instance
$ObjVehicule = new ClsBd();
// initialisation de la requete
$sql = "select CODEDIRECTION, LIBELLEDIRECTION from direction order by LIBELLEDIRECTION desc";
// mise en exécution
$liste = $ObjVehicule->selectRecords($sql);
// echo $sql;
// exploitation des resultats
?>
<!-- je crois ke cest ici kil faut declencher la fonction javascript -->
<select name="direction" class="inputextst" id="dir" onChange="get_record(this.value, 'form1')" >
<? if (is_array($liste))
foreach ($liste as $c => $record)
echo "<option value=$record[0] >$record[1]</option>";
?>
</select> </td>
<td width="28%" align="right"> </td>
<td width="28%" align="left">
</td>
<td width="5%">
</td>
</tr>
<tr>
<td> </td>
<td><strong>Département</strong></td>
<td colspan="2">
<!-- ICI LA COMPOSITION DE LA LISTE "departement" -->
<!-- Pour l'utilisation de la classe voir les 2 autres select -->
</td>
<td align="right"><strong>Service </strong></td>
<td align="left">
<?
// initialisation de la requete
$sql = "select CODESERVICE, LIBELLESERVICE from service order by LIBELLESERVICE desc";
// mise en exécution
$liste = $ObjVehicule->selectRecords($sql);
// exploitation des resultats
echo "<select name=service class=inputextst>";
if (is_array($liste))
foreach ($liste as $c => $record)
echo "<option value=$record[0] selected>$record[1]</option>";
echo "</select>";
?>
</td>
<td>
</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td width="20%" > </td>
<td colspan="2"> </td>
<td> </td>
<td> </td>
</tr>
</table>
</form>
</body></html>
Voila mon code! je suis perdu entre le PHP et javascript.
Si tu peux regarder et t'inspirer de cela pour m'en dire un peu plus.
La foncton " get_record(critere, form)" est sensée etre en javascript : je sais ke j'ai fait un peu n'importe quoi !!!.
Et c'est cette fonction la ki doit utiliser les fonctions de la classe PHP deja ecrite en PHP pour fournir les resultats
escomptés cad les departements en fonction des directions.
Si tu as des reference javascripts ke je peux consulter en ligne je suis preneur d'adresse
mais il faut ke ce script marche !!!
Merci de m'aider ou de me dire ou je peux trouver de l'aide