biiirdy
Invité n'ayant pas de compte PHPfrance
08 juil. 2010, 17:00
Tout d'abord merci de m'aider !
J'ai une première combo avec les plateformes puis une seconde avec les serveurs qui sont sur ces plateformes.
Voila mon code :
maitre.php :
<?php
include("../toolbox/connexion.php");
?>
<script type='text/javascript'>
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
/**
* Méthode qui sera appelée sur le click du bouton
*/
function go(){
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200)
{
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('choix2').innerHTML =leselect;
}
}
xhr.open("POST","esclave.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
sel = document.getElementById(choix1);
var_choix = sel.options[sel.selectedIndex].value;
xhr.send("choix_ajax="+var_choix);
}
</script>
<!-- 1ère liste déroulante -->
<select name='choix1' id='choix1' onchange='go()'>
<option value=0>Choix1</option>
<?php
$sql="select id_platform, platform_name from platform";
$res=mysqli_query($db,$sql);
while($row = mysqli_fetch_row($res))
{
$id=$row[0];
$champs1=$row[1];
echo '<option value='.$id.'>Platform : '.$champs1.'</option>';
}
?>
</select>
<br/>
<br/>
<!-- 2ème liste déroulante -->
<div id='choix2' style='display:inline'>
<select name='choix2' >
<option value="0">choix2</option>
</select>
</div>
esclave.php :
<?php
include("../toolbox/connexion.php");
echo "<select name='choix2'>";
$choix=$_POST['choix_ajax'];
if(isset($choix))
{
switch($choix){
case '0':
echo '<option>faites votre choix</option>';
break;
/*************************************/
case '1':
$sql="select id_server, server_name from server";
$res=mysqli_query($db,$sql);
if($row = mysqli_fetch_row($res)){
$id=$row[0];
$champs=$row[1];
echo '<option value='.$id.'>Champs : '.$champs.'</option>'; //pour afficher le premier enregistrement
while($row = mysqli_fetch_row($res))
{
$id=$row[0]; $champs=row[1]
echo '<option value='.$id.'>Champs : '.$champs.'</option>';
}
}
break;
/*******************************/
case '2':
break;
/*********************************/
}//switch
}//if
echo "</select>";
?>
J'ai bien les valeurs de la 1ère liste mais pas la 2ème.