Bonjour,
je souhaite que jquery "remplisse" deux champs suite à la sélection d'une recherche : le premier "inputString" se remplit bien mais pas le deuxième champ 'secteur' "inputsecteur" ( = $secteur_recupere )...
Merci de votre aide.
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
39
40
41
42
43
44
45
46
47
48 .......... <script type="text/JavaScript"> function lookup(inputString) { if(inputString.length == 0) { // si le champs txte est vide $('#suggestions').hide(); // on cache les suggestions } else { // sinon $.post("ajax_lieu.php", {queryString: ""+inputString+""}, function(data){ // on envoie la valeur du champ texte dans la variable post queryString au fichier ajax_lieu.php if(data.length >0) { $('#suggestions').show(); // si il y a un retour, on affiche la liste $('#autoSuggestionsList').html(data); // et on remplit la liste des données } }); } } function fill(thisValue) { // remplir le champ texte si une suggestion est cliquée $('#inputString').val(thisValue); // ok fonctionne bien $('#inputsecteur').val(); // pour le secteur ! setTimeout("$('#suggestions').hide();", 200); } $(document).ready( function () { $("input#inputString").keyup( function() { // si on presse une touche du clavier en étant dans le champ texte qui a pour id inputString lookup($(this).val()) }); $("input#inputString").blur( function() { // si le champ texte perd le focus fill() }); }); </script> .......... formulaire .......... <label for="ev7">Nom du lieu : </label> <br /> <!-- pour affichage des lieux --> <input type="text" tabindex ="10" name="lieu3" class="ev" value="<?php echo stripslashes($lieu_affiche) ?>" id="inputString" onblur="this.className='ev';valide(this, 'err_mdp');" class="ev" /><!-- champ texte à analyser pour les suggestions --> <div class="suggestionsBox" id="suggestions" style="display: none;"> <!-- bloc contenant les eventuelles suggestions --> <div class="suggestionList" id="autoSuggestionsList"><!-- liste contenant les suggestions --> </div> </div> <!-- FIN de : pour affichage des lieux --> <!-- pour affichage du secteur --> <input type="text" tabindex ="11" name="secteur" class="ev" value="<?php echo stripslashes($secteur_recupere) ?>" id="inputsecteur" onblur="this.className='ev';valide(this, 'err_mdp');" class="ev" /><!-- champ texte à analyser pour les suggestions --> <div class="suggestionsBox" id="suggestions" style="display: none;"> <!-- bloc contenant les eventuelles suggestions --> <div class="suggestionList" id="autoSuggestionsList"><!-- liste contenant les suggestions --> </div> </div> <!-- FIN de : pour affichage du secteur --> ......
ajax_lieu.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 <?php require('configuration.php');$sql = connect_sql(); mysql_query("SET NAMES utf8"); if(isset($_POST['queryString'])) // si la longueur du contenu de la variable est superieur à 0 { $queryString = mysql_real_escape_string($_POST['queryString']); if(strlen($queryString) >0) { $chaine_post_recupere = stripslashes($_POST['queryString']); // recupere la valeur saisie $chaine_pour_requete_ajax = mysql_real_escape_string($chaine_post_recupere); // valeur avec protection contre injections sql $chaine_pour_requete = stripslashes($chaine_pour_requete_ajax); // valeur a afficher sans les slashes & cie... $result = mysql_query("SELECT * FROM lieu WHERE nom LIKE '%$chaine_pour_requete%' LIMIT 15"); if($result) { // on parcourt les resultats et on affiche les resultats dans un element de liste en ajoutant la fonction fill sur l'evenenement onClick while($nom = mysql_fetch_array($result)) { echo '<li onClick="fill(\''.$nom["nom"].' ('.($nom["ville"]).')'.'\');">'.stripslashes($nom["nom"]).'('.stripslashes($nom["ville"]).')'.'</li>'; $secteur_recupere = $nom["secteur"]; } } else { echo 'pas de resultat'; } } else { echo 'pas de saisie'; } } else { echo 'Il ne devrait pas avoir un accès direct à ce script !!!'; } ?>
Partager