Tout est dans le titre mais je vais vous intégrer le code pour que vous compreniez...
Ce post va en même temps en PHP et MYSQL!
J'explique :
- J'ai une première liste qui choisi une agence.
- De cette agence découle des services, différent ou pareil suivant les agences.
- Maintenant j'aimerais que à chaque service de chaque agence assigné une adresse mail...
Concernant ma base de donnée elle est constitué de la manière suivante :
- 1 table Agence : avec 2 champ soit id_agence et agence.
- 1 table Service : avec 3 champ soit id_service, service, id_agence.
Quelqu'un aurait-il une astuce pour réaliser cela?!
Créer une nouvelle table?
Modifier une existante?
Le code:
Code : Tout sélectionner
<?php
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$serveur = "localhost";
$admin = "root";
$mdp = "";
$base = "conge";
/* On récupère si elle existe la valeur de l'agence envoyée par le formulaire */
$idr = isset($_POST['agence'])?$_POST['agence']:null;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
<title>Sélectionner un service selon l'agence choisie</title>
<meta name="description" content="Listes déroulantes dynamiques inter-dépendantes" />
<meta name="keywords" content="" />
<meta name="author" content="Cyrano" />
<meta name="generator" content="Zend Studio Environnement et WebExpert 5" />
<meta http-equiv="imagetoolbar" content="no" />
<meta http-equiv="Pragma" content="no-cache" />
</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">
<h3>Version 100% PHP</h3>
<p>TEST</p>
<?php
if(isset($_POST['ok']) && isset($_POST['service']) && $_POST['service'] != "")
{
$agence_selectionnee = $_POST['agence'];
$service_selectionne = $_POST['service'];
?>
<p>Vous avez sélectionné le service <?php echo($service_selectionne); ?> dans l'agence <?php echo($agence_selectionnee); ?></p>
<?php
}
?>
<h3>Trouver un service</h3>
<?php
/* On établit la connexion à MySQL avec mysql_pconnect()
* besoin de la connexion plus loin dans le script */
$connexion = mysql_pconnect($serveur, $admin, $mdp);
if($connexion != false)
{
$choixbase = mysql_select_db($base, $connexion);
$sql1 = "SELECT `id_agence`, `agence`".
" FROM `agence`".
" ORDER BY `id_agence`";
$rech_agence = mysql_query($sql1);
$code_agence = array();
$agence = array();
/* On active un compteur pour les régions */
$nb_agence = 0;
if($rech_agence != false)
{
while($ligne = mysql_fetch_assoc($rech_agence))
{
array_push($code_agence, $ligne['id_agence']);
array_push($agence, $ligne['agence']);
/* On incrémente le compteur */
$nb_agence++;
}
}
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept">
<fieldset style="border: 3px double #333399">
<legend>Sélectionnez une agence</legend>
<select name="agence" id="agence" onchange="document.forms['chgdept'].submit();">
<option value="-1">- - - Choisissez une agence - - -</option>
<?php
for($i = 0; $i < $nb_agence; $i++)
{
?>
<option value="<?php echo($code_agence[$i]); ?>"<?php echo((isset($idr) && $idr == $code_agence[$i])?" selected=\"selected\"":null); ?>><?php echo($agence[$i]); ?></option>
<?php
}
?>
</select>
<?php
mysql_free_result($rech_agence);
/* On commence par vérifier si on a envoyé un numéro d'agence et le cas échéant s'il est différent de -1 */
if(isset($idr) && $idr != -1)
{
/* Cération de la requête pour avoir les service de cette agence */
$sql2 = "SELECT `id_service`, `service`".
" FROM `service`".
" WHERE `id_agence` = ". $idr ."".
" ORDER BY `id_service`;";
if($connexion != false)
{
$rech_service = mysql_query($sql2, $connexion);
/* Un petit compteur pour les service */
$nd = 0;
/* On crée deux tableaux pour les numéros et les noms des service */
$code_service = array();
$nom_service = array();
/* On met les numéros et noms des service dans les deux tableaux */
while($ligne_service = mysql_fetch_assoc($rech_service))
{
array_push($code_service, $ligne_service['id_service']);
array_push($nom_service, $ligne_service['service']);
$nd++;
}
/* Construction liste déroulante */
?>
<select name="service" id="service">
<?php
for($d = 0; $d<$nd; $d++)
{
?>
<option value="<?php echo($code_service[$d]); ?>"<?php echo((isset($service_selectionne) && $service_selectionne == $code_service[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_service[$d]." (". $code_service[$d] .")"); ?></option>
<?php
}
?>
</select>
<?php
}
/* Nettoyage */
mysql_free_result($rech_service);
}
?>
<br /><input type="submit" name="ok" id="ok" value="Envoyer" />
</fieldset>
</form>
<?php
/* on ferme la connexion */
mysql_close($connexion);
}
else
{
?>
<p>Un incident s'est produit lors de la connexion à la base de données, veuillez essayer à nouveau ultérieurement.</p>
<?php
}
?>
<p><a href="./index2.php" title="Aller vers la version JavaScript">FIN TEST</a></p>
</body>
</html>
Maillard Cédric