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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.