|
|
|
|
<?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") ?>
<?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>";
?>
personne? je pige toujours pas pourquoi ça marche pas...
merci...
|
Le problème peut être dû à l'emplacement du fichier ajax.php. J'avais mis mon fichier ajax.php dans le dossier ou j'en avais besoin mais en fait il était impossible de l'appeler, j'ai donc mis mon ajax.php dans ma racine. ++ |
salut, moi aussi je me suis pris la tête avec les listes déroulantes, j'ai un bon tuyau si vous le souhaitez :
http://www.roodali.com/... http://www.roodali.com/... ces les 2 seuls exemples que j'ai pu faire fonctionner, bon courage |
sel = document.getElementById('pays'); c'est la que ca va pas pourquoi "pays"? |
Bonsoir,
dans ta page: <div id='ville' style='display:inline'> <select name='ville'> <option value='-1'>Choisir un pays</option> </select> </div> tout ce qui est entre <div id='ville' style='display:inline'> et </div> ne sert à rien puisque tu va écrire par la réponse Ajax <select .... et toutes les options Mais ce n'est pas ça qui gène. Essayes en mettant comme requette dans ajax.ph: $res = mysql_query("SELECT * FROM tb_ville WHERE id_pays = '".$id_pays."' ORDER BY ville");
car tu as mis $id_pays = $_POST["id_pays"]; un peu plus haut, donc pas bonne variable de plus il faut des ' de part et d'autre de la valeur à tester. @lain
|
bonsoir;
j'avais le même problème, mais sur firefox seulment; le probleme : document.getElementById('ville').innerHTML = leselect; cette instruction remplace le contenu html de la DIV "ville"; donc le select nomé "livre" sera replacé par un autre, et même si ils ont le même nom (le nouveau et l'ancien select), le firefox ne réussi pas à traiter le nouveau select, la solution et de garder l'ancien select mais de supprimer son contenu (les options) et le remplacer par un autre, une petite requête sur le "Sheikh" google, j'ai trouver cette "fatwa" : http://www.dhtmlgoodies.com/index.html?whichScript=ajax_chained_select c bien fait et réussi, good luck
|
Résultats pour [ajax] listes liées
Résultats pour [ajax] listes liées
Résultats pour [ajax] listes liées
Résultats pour [ajax] listes liées
Résultats pour [ajax] listes liées