echo '<option value="'.$row["nompays"].'"> </option>';<html>
<head>
<title>Page pays ville</title>
<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('ville').innerHTML = leselect;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","ville.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id du pays
sel = document.getElementById('pays');
idpays = sel.options[sel.selectedIndex].value;
xhr.send("idpays="+idpays);
}
</script>
</head>
<body>
<form>
<fieldset style="width: 400px">
<legend>Liste liées</legend>
<label>Pays</label>
<select name='pays' id='pays' onchange='go()'>
<option value='-1'>Choisir un pays</option>
<?php
mysql_connect("localhost","root","");
mysql_select_db("base1");
$res = mysql_query("SELECT nompays FROM pays ORDER BY nompays");
while($row = mysql_fetch_assoc($res)){
echo '<option value="'.$row["nompays"].'">'.$row["nompays"].' </option>';
}
?>
</select>
<label>Villes</label>
<select name='ville' id='ville'>
<option value='-1'>Choisir une ville</option>
</select>
</div>
</fieldset>
</form>
</body>
</html>
a quelle niveau, test ton autre scriptsi j'ai bien compris je dois remplacer dans le fichier ville.php $_POST["nompays"] par $_POST["pays"] mais ca plante toujours
faistoujours blocage à la ligne if (isset...
j'ai essayé http://127.0.0.1/ville.php?ville=paris
rien ne s'affiche et rien dans le fichier source
var_dump($_POST); au debut de ton code de ville.php et tu comprendraexcusez moi mais la je suis perdua quelle niveau, test ton autre scriptsi j'ai bien compris je dois remplacer dans le fichier ville.php $_POST["nompays"] par $_POST["pays"] mais ca plante toujours
remplace le POST par un GET, et fais http://tonserveur/ville.php?ville=truc
tu vas bien voir ce que rend la page, (si il affiche rien regarde dans la source html)
EDIT : en regardant bien ta ni mis "nompays" ni "pays" mais "idpays" dans ta requete ...
faut prendre l'habitude de vérifier les variables en entrée, sinon tu code a l'aveuglette
et quand tu fais un "if" met toujours un "else" au moins pour dire "variable non trouvé"
c'est ta requete qui n'est pas bonne, faut activer les erreur pour mysqlj'ai mis un $_post au lieu de $_POSTmais mnt j'ai un Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in F:\php\ville.php on line 7
<?php
if(isset($_POST["nompays"])){
mysql_connect("localhost","root","");
mysql_select_db("base1");
$res = mysql_query("SELECT nomville FROM ville
WHERE nompays='".$_POST["nompays"]."' ORDER BY nomville");
while($row = mysql_fetch_assoc($res)){
echo '<option value="'.$row["nomville"].'">'.$row["nomville"].' </option>';
}
}
?>