Oui c'était pour le principe, j'avais pas testé.
En reprenant le principe de ton code on peut faire un truc du genre (à tester dans une page séparée):
<?php
if (isset($_POST["envoyer"],$_POST['region'],$_POST['departement']) && $_POST['departement'] != 0 && $_POST['region'] != 0)
{
//Région
$region = $_POST["region"];
//Département
$departement = $_POST["departement"];
echo 'Région:'.$region.'<br/>
Departement:'.$departement.'<br/>';
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<script type="text/javascript">
<!--
function Affiche_Departement() {
// Pour afficher le département après le post
<?php if (isset($_POST["region"]))
{ ?>
var boite = document.getElementById('boite<?php echo $_POST["region"]?>');
if (boite)
{
boite.style.display = 'inline';
boite.disabled = false;
}
<?php }?>
}
function AfficheBoite(num) {
var maxBoite = 10; // Indiquer ici le nombre maximale de boite possible
for (var i = 1; i <= maxBoite; i++)
{
var boite = document.getElementById('boite'+i);
if (boite)
{
if (i == num)
{
boite.style.display = 'inline';
boite.disabled = false;
}
else
{
boite.style.display = 'none';
boite.disabled = true;
}
}
}
}
-->
</script>
<style type="text/css">
.select_dep {
display:none;
}
</style>
</head>
<body onload = "Affiche_Departement()">
<div>
<form action = "#ancre_formulaire" method = "post" >
<div>
<select name="region" id = "region" onchange = "AfficheBoite(this.value)">
<option value = "0">«Choisissez la Région»</option>
<option value = "1" <?php echo isset($_POST["region"]) && $_POST["region"] == 1 ? 'selected = "selected"' : '';?>>Alsace</option>
<option value = "2" <?php echo isset($_POST["region"]) && $_POST["region"] == 2 ? 'selected = "selected"' : '';?>>Aquitaine</option>
<option value = "3" <?php echo isset($_POST["region"]) && $_POST["region"] == 3 ? 'selected = "selected"' : '';?>>Auvergne</option>
</select>
<select class="select_dep" name="departement" id="boite1" onchange = "AfficheBoite(1)" disabled="disabled">
<option value = "0">«Choisissez»</option>
<option value = "1" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 1 ? 'selected = "selected"' : '';?>>Bas-Rhin</option>
<option value = "2" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 2 ? 'selected = "selected"' : '';?>>Haut-Rhin</option>
</select>
<select class="select_dep" name="departement" id="boite2" onchange = "AfficheBoite(2)" disabled="disabled">
<option value = "0">«Choisissez»</option>
<option value = "3" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 3 ? 'selected = "selected"' : '';?>>Dordogne</option>
<option value = "4" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 4 ? 'selected = "selected"' : '';?>>Gironde</option>
<option value = "5" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 5 ? 'selected = "selected"' : '';?>>Landes</option>
<option value = "6" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 6 ? 'selected = "selected"' : '';?>>Lot-et-Garonne</option>
<option value = "7" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 7 ? 'selected = "selected"' : '';?>>Pyrénées-Atlantiques</option>
</select>
<select class="select_dep" name="departement" id="boite3" onchange = "AfficheBoite(3)" disabled="disabled">
<option value = "0">«Choisissez»</option>
<option value = "8" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 8 ? 'selected = "selected"' : '';?>>Allier</option>
<option value = "9" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 9 ? 'selected = "selected"' : '';?>>Cantal</option>
<option value = "10" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 10 ? 'selected = "selected"' : '';?>>Haute-Loire</option>
<option value = "11" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 11 ? 'selected = "selected"' : '';?>>Puy-de-dôme</option>
</select>
<input class="boutton" name="envoyer" value="envoyer" type="submit"/>
</div>
</form>
</div>
</body>
</html>
C'est le résultat que tu attends ?
Sinon bon c'est quand même un peu du bricolage... cela dit ça à l'air de fonctionner et ça peut être utile quand on souhaite un référencement du contenu des listes et pour des listes pas trop longues (tous les selects sont affichés dans la page et s'il y en avait vraiment beaucoup ça ralentirait l'affichage de la page).
Si besoin il y a un tuto sur
les listes déroulantes liées ici
Oui c'était pour le principe, j'avais pas testé.
En reprenant le principe de ton code on peut faire un truc du genre (à tester dans une page séparée):
[php]<?php
if (isset($_POST["envoyer"],$_POST['region'],$_POST['departement']) && $_POST['departement'] != 0 && $_POST['region'] != 0)
{
//Région
$region = $_POST["region"];
//Département
$departement = $_POST["departement"];
echo 'Région:'.$region.'<br/>
Departement:'.$departement.'<br/>';
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<script type="text/javascript">
<!--
function Affiche_Departement() {
// Pour afficher le département après le post
<?php if (isset($_POST["region"]))
{ ?>
var boite = document.getElementById('boite<?php echo $_POST["region"]?>');
if (boite)
{
boite.style.display = 'inline';
boite.disabled = false;
}
<?php }?>
}
function AfficheBoite(num) {
var maxBoite = 10; // Indiquer ici le nombre maximale de boite possible
for (var i = 1; i <= maxBoite; i++)
{
var boite = document.getElementById('boite'+i);
if (boite)
{
if (i == num)
{
boite.style.display = 'inline';
boite.disabled = false;
}
else
{
boite.style.display = 'none';
boite.disabled = true;
}
}
}
}
-->
</script>
<style type="text/css">
.select_dep {
display:none;
}
</style>
</head>
<body onload = "Affiche_Departement()">
<div>
<form action = "#ancre_formulaire" method = "post" >
<div>
<select name="region" id = "region" onchange = "AfficheBoite(this.value)">
<option value = "0">«Choisissez la Région»</option>
<option value = "1" <?php echo isset($_POST["region"]) && $_POST["region"] == 1 ? 'selected = "selected"' : '';?>>Alsace</option>
<option value = "2" <?php echo isset($_POST["region"]) && $_POST["region"] == 2 ? 'selected = "selected"' : '';?>>Aquitaine</option>
<option value = "3" <?php echo isset($_POST["region"]) && $_POST["region"] == 3 ? 'selected = "selected"' : '';?>>Auvergne</option>
</select>
<select class="select_dep" name="departement" id="boite1" onchange = "AfficheBoite(1)" disabled="disabled">
<option value = "0">«Choisissez»</option>
<option value = "1" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 1 ? 'selected = "selected"' : '';?>>Bas-Rhin</option>
<option value = "2" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 2 ? 'selected = "selected"' : '';?>>Haut-Rhin</option>
</select>
<select class="select_dep" name="departement" id="boite2" onchange = "AfficheBoite(2)" disabled="disabled">
<option value = "0">«Choisissez»</option>
<option value = "3" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 3 ? 'selected = "selected"' : '';?>>Dordogne</option>
<option value = "4" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 4 ? 'selected = "selected"' : '';?>>Gironde</option>
<option value = "5" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 5 ? 'selected = "selected"' : '';?>>Landes</option>
<option value = "6" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 6 ? 'selected = "selected"' : '';?>>Lot-et-Garonne</option>
<option value = "7" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 7 ? 'selected = "selected"' : '';?>>Pyrénées-Atlantiques</option>
</select>
<select class="select_dep" name="departement" id="boite3" onchange = "AfficheBoite(3)" disabled="disabled">
<option value = "0">«Choisissez»</option>
<option value = "8" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 8 ? 'selected = "selected"' : '';?>>Allier</option>
<option value = "9" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 9 ? 'selected = "selected"' : '';?>>Cantal</option>
<option value = "10" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 10 ? 'selected = "selected"' : '';?>>Haute-Loire</option>
<option value = "11" <?php echo isset($_POST["departement"]) && $_POST["departement"] == 11 ? 'selected = "selected"' : '';?>>Puy-de-dôme</option>
</select>
<input class="boutton" name="envoyer" value="envoyer" type="submit"/>
</div>
</form>
</div>
</body>
</html>
[/php]
C'est le résultat que tu attends ?
Sinon bon c'est quand même un peu du bricolage... cela dit ça à l'air de fonctionner et ça peut être utile quand on souhaite un référencement du contenu des listes et pour des listes pas trop longues (tous les selects sont affichés dans la page et s'il y en avait vraiment beaucoup ça ralentirait l'affichage de la page).
Si besoin il y a un tuto sur [url=http://forum.phpfrance.com/faq-tutoriels/formulaires-listes-deroulantes-dynamiques-liees-t4562.html]les listes déroulantes liées ici[/url]