no save
Assistance
Achat
News

Forum | webmastering
[ajax] listes liées
redwire, le dim. 17 sept. 2006 à 15:16:21
J'ai utilisé la méthode exposée dans le tuto http://siddh.developpez.com/articles/ajax/#LIV-A
mais j'ai transposé à une table tb_pays et une table tb_ville....

j'ai beau cherché l'erreur, ma seconde liste est toujours vide quand je choisis un pays....

<?php include("haut.php") ; // contient la connexion avec la base ?>
<div id="corps">
<script type='text/javascript'>
var xhr = null;

function getXhr(){
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;
}
}

/**
* Méthode qui sera appelée sur le click du bouton
*/
function go(){
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","ajaxville.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("id_pays="+idpays);
}
</script>
<form>
<fieldset>
<legend>lieux:</legend>
<label>pays</label>
<select name='pays' id='pays' onchange='go()'>
<option value='-1'>Aucun</option>
<?
$res = mysql_query("SELECT * FROM tb_pays ORDER BY id_pays");
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row["id_pays"]."'>".$row["pays"]."</option>";
}
?>
</select>
<label>ville</label>
<div id='ville' style='display:inline'>
<select name='ville'>
<option value='-1'>Choisir un pays</option>
</select>
</div>
</fieldset>
</form>
</div>

<?php include("bas.php") ?>

et le fichier ajaxville.php
<?php
echo "<select name='ville'>";
if(isset($_POST["id_pays"])){
$id_pays = $_POST["id_pays"];
mysql_connect("localhost","root","");
mysql_select_db("base_setlist");
$res = mysql_query("SELECT * FROM tb_ville WHERE id_pays = $idpays ORDER BY ville");
while($row = mysql_fetch_assoc($res))
{
echo "<option value='".$row["id_ville"]."'>".$row["ville"]."</option>";
}
}
echo "</select>";
?>

merci:D


redwire
sept. 06
Suivant
REPONSES
redwire
sept. 06
spalc
mai 07
spalc
mai 07
cach
sept. 07
ted470
oct. 07
dogmongo
janv. 08
Alain42
janv. 08
BoOmSoluTioN
févr. 08
Nikoninho
avr. 08
Alain_42
avr. 08
Version Web
Réalisé par RedShift
no save