hello,
je suis entrain de faire deux combo liée ( quand on choisi une option dans l'une l'autre se met a jours en fonction d'une requette mysql)
Mon problème est que la requette ne renvoie que des résultats que pour les 2 dernieres options de la combobox.
Voici le code de Index.php ( qui contient du code ajax). Je pense que cela peut venir d'un problème d'accents mais je ne sait pas comment le résoudre (si c'est sa )
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
/**
* Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
*/
function sendData(param, page)
{
if(document.all)
{
//Internet Explorer
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}//fin if
else
{
//Mozilla
var XhrObj = new XMLHttpRequest();
}//fin else
//définition de l'endroit d'affichage:
var content = document.getElementById("contenu");
XhrObj.open("POST", page);
//Ok pour la page cible
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200)
content.innerHTML = XhrObj.responseText ;
}
XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(param);
}//fin fonction SendData
</script>
</head>
<body>
<?php
$i=0;
$j=0;
echo "<form method='POST' action='ajax.php'>";
?>
<select size="1" name="cat" OnChange="sendData('id='+this.value,'ajax.php')" onKeyUp="sendData('id='+this.value,'ajax.php')">
<?php
echo '<option value="Jeux calme intérieur">'.htmlentities(stripslashes('Jeux calme intérieur')).'</option>';
echo '<option value="Jeux calme extérieur">'.htmlentities(stripslashes('Jeux calme extérieur')).'</option>';
echo '<option value="Jeux actif intérieur">'.htmlentities(stripslashes('Jeux actif intérieur')).'</option>';
echo '<option value="Jeux actif extérieur">'.htmlentities(stripslashes('Jeux actif extérieur')).'</option>';
echo '<option value="Jeux Coopératif">'.htmlentities(stripslashes('Jeux Coopératif')).'</option>';
echo '<option value="Jeux Sportif">'.htmlentities(stripslashes('Jeux Sportif')).'</option>';
echo '<option value="Tout les types">'.htmlentities(stripslashes('Tout les types')).'</option>';
?>
</select><br><br>
<div id="contenu">
<?php
// affichage des sous-catégorie appartenant à la première catégorie.
echo "<select size='1' name='souscat'>";
echo "</select>";
?>
</div>
</form>
</body>
</html>
et le code de ajax.php
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
// test des POST emis
if(isset($_POST['id']) && !empty($_POST['id']) ){
$user="**********";
$host="sql.olympe-network.com";
$password="**********";
$database="jeuxenfants";
$connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");
mysql_select_db($database,$connexion);
if ($_POST['id']=='Tout les types') $rq='Select * from jeux'; else $rq='Select * from jeux where type=\''. utf8_encode($_POST['id']).'\'';
echo $rq .'<br>';
mysql_query("SET NAMES UTF8");
$result= mysql_query ($rq);
$i=0;
echo mysql_num_rows($result) .'<br>';
if (mysql_num_rows($result)>0)
{
echo "<select size='1' name='souscat'>";
}
else
{
echo utf8_encode("Pas de sous catégories disponible");
}
while ($dt=mysql_fetch_row($result))
{
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[1])."</option><br>";
}
echo "</select>";
}
?>
</html>
et le contenu de la table jeux (faites pas attention aux valeurs
):
| id | nom | type | nbre | duree | expli | vari | matos |
|---|
|
|
| 1 | pehce à piads | Jeux calme intérieur | 213 | 15 | i? fqfsdqsdfq | éééé | |
|
|
| 2 | hihi | Jeux Coopératif | 147 | 20 | test | tesdt | |
|
|
| 3 | sf | Jeux actif intérieur | 456 | 123 | fqfnkqfùkqnfnqsùkfnùqsf qsdqµsflq,sdf ùqndfqnsdf... | smùnrfgmqsng gmsngµsdfg µgnsµfg sgsmfgnsf gsfn... | |
|
|
| 4 | test | Jeux Coopératif | 13 | 52 | fsfsqf | sdfsf | balle |
|
|
| 5 | sdfsd | Jeux Sportif | 545 | 784 | SDSF | SDFSD | SDFSF |
|
|
| 6 | sdfsd | Jeux Sportif | 545 | 784 | SDSF | SDFSD | SDFSF |
|
|
| 7 | fssdf | Jeux actif extérieur | 13 | 15 | sdfdf | qdfsdf | dhjfgjh |
|
|
| 8 | fdsf | Jeux actif extérieur | 51 | 89 | sdfsdf | sdff | sfgsdf |
Merci d'avance
@ dodo1309