Hello ,
J'ai déjà jeté un oeil aux cours/tutos Ajax, mais des choses m'échappent encore.
J'aurais besoin de vous pour coder un cas concret mais très simple, qui m'aidera à mieux capter.
-> un formulaire
-> 2 input via <select><select>département (liste lue en base pour générer le select-option)
<select>ville (liste lue en base pour générer le select-option, selon le département saisi)
-> le but: n'afficher dans ville QUE celles du département choisi juste avant
.html
1 2 3 4 5 6 7
| <form>
Département:
<?php $tmp = select_départements("Département", true); echo $tmp; ?>
Ville:
<?php $tmp = select_villes("GrandeVille", $département_selectionné_juste_avant, true); echo $tmp; ?>
</form> |
.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| function select_départements($label, $flag_required=false)
{
if($flag_required === true) $required="required";
else $required="";
$tmp = "<SELECT ID ='$label' NAME='$label' onChange='returnDep()' $required>";
$tmp .= "<OPTION VALUE=''>choisir";
$query = "SELECT distinct(num_dep) FROM grandes_villes ORDER BY num_dep";
$resultat = mysql_query($query);
while ($ligne = mysql_fetch_array($resultat))
{
$tmp .= "<OPTION VALUE='". mysql_real_escape_string($ligne['num_dep']) . "'>" . mysql_real_escape_string($ligne['num_dep']);
}
$tmp .= "</SELECT>\n\r";
return $tmp;
}
function select_villes($label, $dep, $flag_required=false)
{
if($flag_required === true) $required="required";
else $required="";
$tmp = "<SELECT NAME='$label' $required>";
$tmp .= "<OPTION VALUE=''>choisir";
$query = "SELECT id, ville FROM villes WHERE num_dep = '" . htmlspecialchars($dep, ENT_QUOTES, 'utf-8') . "' ORDER BY ville";
$resultat = mysql_query($query);
while ($ligne = mysql_fetch_array($resultat))
{
$tmp .= "<OPTION VALUE='". mysql_real_escape_string($ligne['id']) . "'>" . mysql_real_escape_string($ligne['ville']);
}
$tmp .= "</SELECT>\n\r";
return $tmp; |
Avec un onChange sur le 1er select, je peux récupérer la valeur du département en JS, ok............ mais comme JS, lui, ne peut pas renvoyer de paramètre vers PHP (pour le select ville), la seule solution serait donc de l'Ajax, si j'ai bien compris?
Ou y-a-t-il une autre méthode?
Merci.
Partager