Listes déroulantes liées
Fermé
yasean
-
17 juin 2011 à 18:01
kshaad Messages postés 13 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 30 juin 2011 - 30 juin 2011 à 10:54
kshaad Messages postés 13 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 30 juin 2011 - 30 juin 2011 à 10:54
1 réponse
kshaad
Messages postés
13
Date d'inscription
mardi 27 juillet 2010
Statut
Membre
Dernière intervention
30 juin 2011
30 juin 2011 à 10:54
30 juin 2011 à 10:54
Bonjour,
Pour moi je fais la même chose et ça marche, regarde sur mon code; Sinon pour toi la seule chose que j'ai remarqué c'est le nom du fichier PHP : rechercher.php , car sur l'appel dans la fonction JS tu as mis xhr.open("POST","recherche1.php",true);
méfier toi si c'est le bon nom!!!!
voilà mon code à moi:
Fichier de mon formulaire principale:
/**
* 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('famille').innerHTML = leselect;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","form/Ajaxfamille.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 de l'auteur
sel = document.getElementById('categorie');
idcat = sel.options[sel.selectedIndex].value;
xhr.send("idCat="+idcat);
}
....
....
....
.....
.....
....
...
..
<!-- Connexion BDD -->
<?php include("connexion.php");?>
<!-- déclaration requete sql -->
<?php
$query=mysql_query("select Categorie from Categorie");
?>
<!-- affectation des données dans la liste déroulante -->
<tr>
<td align="left" bgcolor="E6E6E6">Catégorie</td>
<td align="left" bgcolor="E6E6E6">
<select name='categorie' id='categorie' onChange='go()'>
<option value='-1'>Aucun</option>
<?php
$res = mysql_query("SELECT * FROM categorie ORDER BY Categorie");
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row["IdCategorie"]."'>".$row["Categorie"]."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td align="left" bgcolor="E6E6E6">Famille</td>
<td width="76%" align="left" bgcolor="E6E6E6">
<select name='famille' id='famille' onchange='goesp()'>
<option value='-1'>--------------------</option>
</select>
</td>
Fichier Ajaxfamille.php:
<?php
echo "<select name='famille' id='famille' onchange='goesp()'>";
if(isset($_POST["idCat"])){
mysql_connect("localhost","root","");
mysql_select_db("db_promark");
$res = mysql_query("SELECT * FROM famille WHERE IdCategorie=".$_POST["idCat"]." ORDER BY NomFamille");
echo"<option value='-1'>Aucun</option>";
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row["IdFamille"]."'>".$row["NomFamille"]."</option>";
}
}
else
echo "<option value='-1'>Choisir categorie</option>";
echo "</select>";
?>
j'espère que ça soit utile pour toi...
Pour moi je fais la même chose et ça marche, regarde sur mon code; Sinon pour toi la seule chose que j'ai remarqué c'est le nom du fichier PHP : rechercher.php , car sur l'appel dans la fonction JS tu as mis xhr.open("POST","recherche1.php",true);
méfier toi si c'est le bon nom!!!!
voilà mon code à moi:
Fichier de mon formulaire principale:
/**
* 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('famille').innerHTML = leselect;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","form/Ajaxfamille.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 de l'auteur
sel = document.getElementById('categorie');
idcat = sel.options[sel.selectedIndex].value;
xhr.send("idCat="+idcat);
}
....
....
....
.....
.....
....
...
..
<!-- Connexion BDD -->
<?php include("connexion.php");?>
<!-- déclaration requete sql -->
<?php
$query=mysql_query("select Categorie from Categorie");
?>
<!-- affectation des données dans la liste déroulante -->
<tr>
<td align="left" bgcolor="E6E6E6">Catégorie</td>
<td align="left" bgcolor="E6E6E6">
<select name='categorie' id='categorie' onChange='go()'>
<option value='-1'>Aucun</option>
<?php
$res = mysql_query("SELECT * FROM categorie ORDER BY Categorie");
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row["IdCategorie"]."'>".$row["Categorie"]."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td align="left" bgcolor="E6E6E6">Famille</td>
<td width="76%" align="left" bgcolor="E6E6E6">
<select name='famille' id='famille' onchange='goesp()'>
<option value='-1'>--------------------</option>
</select>
</td>
Fichier Ajaxfamille.php:
<?php
echo "<select name='famille' id='famille' onchange='goesp()'>";
if(isset($_POST["idCat"])){
mysql_connect("localhost","root","");
mysql_select_db("db_promark");
$res = mysql_query("SELECT * FROM famille WHERE IdCategorie=".$_POST["idCat"]." ORDER BY NomFamille");
echo"<option value='-1'>Aucun</option>";
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row["IdFamille"]."'>".$row["NomFamille"]."</option>";
}
}
else
echo "<option value='-1'>Choisir categorie</option>";
echo "</select>";
?>
j'espère que ça soit utile pour toi...