Bonjour a tous,
Mon But est de creer sur un meme formulaire deux listes deroulantes avec autocompletion a partir de la db. Les deux listes representent deux colonnes de la meme table. Un premier champ pour les marques de voitures. Quand le premier champ est rempli, je veut que le deuxieme affiche que les modeles pour la marque dans le premier champ.
N'ayant pas le niveau de coder un .js from scratch pour faire ca, j'utilise un code pris sur le net.
voici le code html de mon form avec les deux listes :
le script ajax dynamic list appel une page php pour creer la liste a partir de la base en fonction des lettres tapees. Pour le moment, j'ai juste fait en sorte que l'autocompletion ajax marche pour le deuxieme champ model en faisant une deuxieme requete sur le modele.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <script type="text/javascript" src="./js/ajax.js"></script> <script type="text/javascript" src="./js/ajax-dynamic-list.js"></script> <form name="form-test" action="results.php" method="get" id="form-test" > <table width="80%;" style="margin:auto" cols="2"> <tr><td>Make:</td><td><input type="text" name="champ-texte" id="champ-texte" size="33" autocomplete="off" onkeyup="ajax_showOptions(this,'getMakeByLetters',event)" /> </td></tr> <tr><td>Model:</td><td><input type="text" name="champ-model" id="champ-model" size="33" autocomplete="off" onkeyup="ajax_showOptions(this,'getModelByLetters',event)"/></td></tr>
Est ce qu'il est possible dans le deuxieme if ci-dessous de recuperer la variable dans le premier champ (sans recharger la page) et changer la requete sql avec la marque pour qu'il me sorte que les modeles desirees?
J'ai vu qu'il est impossible de passer une variable javascript en php. Donc ma question est : Comment utiliser avec php une variable creer dans un champ form par du javascript. J'espere etre clair
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 if(isset($_GET['getMakeByLetters']) && isset($_GET['letters'])){ $letters = $_GET['letters']; $letters = preg_replace("/[^a-z0-9 ]/si","",$letters); $res = mysql_query("select car_make from tbl_cars where car_make like '".$letters."%' group by car_make") or die(mysql_error()); #echo "1###select ID,countryName from ajax_countries where countryName like '".$letters."%'|"; while($inf = mysql_fetch_array($res)){ echo $inf["ID"]."###".$inf["car_make"]."|"; } } if(isset($_GET['getModelByLetters']) && isset($_GET['letters'])){ $letters = $_GET['letters']; $letters = preg_replace("/[^a-z0-9 ]/si","",$letters); $res = mysql_query("select car_model from tbl_cars where car_model like '".$letters."%' group by car_model") or die(mysql_error()); #echo "1###select ID,countryName from ajax_countries where countryName like '".$letters."%'|"; while($inf = mysql_fetch_array($res)){ echo $inf["ID"]."###".$inf["car_model"]."|"; } }
Partager