Bonjour,
J'essaie de mettre en place un remplissage automatique de deux champs texte (nom et prenom) lors de la saisie sur un des deux champs (nom). Actuellement, ça fonctionne, mais bancale-ment.
J'ai un script php qui s'occuppe de requêter la base de données et renvoi le nom et prénom au javascript. Le javascript affiche bien dans une div flottante les résultats. Jusque là c'est impeccable. Si je click sur un des noms affichés dans la div, j'arrive aussi à remplir mes deux champs texte avec les données correspondantes.
Par contre, si je décide de ne pas clicker sur la div, mais plutôt de saisir une partie ou le nom complet, ça ne fonctionne plus. J'ai un "undefined" qui s'affiche dans mes deux champs texte. Comment puis-je procéder pour arriver à avoir les deux fonctionnements ?
Voilà mon code :
Le JS :
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 <script type="text/javascript"> function lookup(inputString) { //alert("value: " + inputString); if(inputString.length == 0) { // Hide the suggestion box. $('#suggestions').hide(); } else { $.post("psearch.php", {queryString: ""+inputString+""}, function(data){ if(data.length >0) { $('#suggestions').show(); $('#autoSuggestionsList').html(data); } }); } } // lookup function fill(nom,prenom) { //alert(nom); document.getElementById('pname').value = nom; document.getElementById('ppname').value = prenom; //setTimeout("$('#suggestions').hide();", 200); } </script>Voilà. J'espère que vous pourrez m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <input type="text" name="pname" id="pname" class="text" value="{VPNAME}" onkeyup="lookup(this.value);" onblur="fill();" /> <input type="text" id="ppname" class="text" name="ppname" value="{VPPNAME}" /> <div class="suggestionsBox" id="suggestions" style="display: none;"> <div class="suggestionList" id="autoSuggestionsList"></div> </div>
Partager