Listes liées : la 2ème ne se remplit pas
Bonjour à tous,
Donc mon problème depuis ce matin (je perds pas espoir :lol:) est le suivant : je souhaite avoir une liste avec les codes postaux (celle-ci se charge au chargement de la page). On choisit un code parmi eux, la seconde liste s'affiche alors, comprenant les communes reliées à ce code postal.
voici un bout de l'index de ma page :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<form>
<label>Habitation :</label>
<select name="codePostal" id="codePostal" onchange="chercheCodePostal(this.value)">
<option value="void">Choisir son code postal</option>
<?php require_once("select_codePostal.php"); ?>
</select>
<select name="commune" id="commune">
<option value="void">Choisir sa commune</option>
</select>
</form> |
voici mon script PHP select_codePostal :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<?php
$db = new mysqli('localhost', 'root' ,'', 'test');
if(!$db) {
echo 'ERREUR: Ne peut se connecter à la bdd.';
}
else {
$query = $db->query("SELECT cnecodepostal FROM commune ORDER BY cnecodepostal");
if($query) {
while ($result = $query ->fetch_object()) {
echo "<option value=\"$result->cnecodepostal\">$result->cnecodepostal</option>";
}
}
}
mysqli_close($db);
?> |
La première liste se remplit sans soucis, la requête est bonne bref, ça roule ! Mais ça se complique avec le reste...
Mon petit bout de JS (je précise que je tente de travailler avec la librairie jQuery) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
function chercheCodePostal(inputString) {
var temp = $("commune").val();
$.ajax({
type: "POST",
url: "select_commune.php",
data: "var"+inputString,
success: function(data) {
$("#commune").html(data);
if(selected=="void") $("#commune").hide();
else $("#commune").show();
}
});
} |
et enfin mon script PHP select_commune :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<?php
$db = new mysqli('localhost', 'root' ,'', 'test');
if(!$db) {
echo 'ERREUR: Ne peut se connecter à la bdd.';
}
else {
$var=$_POST['commune'];
$query = $db->query("SELECT cneintitule FROM commune WHERE cnecodepostal='$var' ORDER BY cneintitule");
if($query) {
while ($result = $query ->fetch_object()) {
echo "<option value=\"$result->cneintitule\">$result->cneintitule</option>";
}
}
}
mysqli_close($db);
?> |
Peut-être y verrez vous plus clair que moi sur le sujet.
J'ai tout de même l'impression que ça se passe au niveau de la valeur du code postal que l'on choisit ($var). La requête ne donne rien, pourtant elle fonctionne (après l'avoir testée avec phpmyadmin)...
Merci pour l'aide/les conseils que vous m'apporterez :)
Cécile