Bonsoir à tous,
Ayant quelques connaissances en JS j'ai voulu attaquer la librairie JQuery, et plus particulièrement le script jquery.autocomplete.js.
Pour ce faire j'ai suivi un tutoriel :
http://viralpatel.net/blogs/tutorial...va-jsp-jquery/
J'ai donc respecté ce code à la lettre, la complétion fonctionne, seulement, pour une raison que je ne comprends pas, je récupère les balises de ma jsp (<head>, <body> etc...) dans les résultats proposés par la complétion
Voici mon code :
Ma classe qui construit la liste de valeur :
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
| public class VillesDB {
private int totalCountries;
private String data = "Afghanistan, Albania, Zimbabwe";
private List<String> countries;
public VillesDB() {
countries = new ArrayList<String>();
StringTokenizer st = new StringTokenizer(data, ",");
while(st.hasMoreTokens()) {
countries.add(st.nextToken().trim());
}
totalCountries = countries.size();
}
public List<String> getData(String query) {
String country = null;
query = query.toLowerCase();
List<String> matched = new ArrayList<String>();
for(int i=0; i<totalCountries; i++) {
country = countries.get(i).toLowerCase();
if(country.startsWith(query)) {
matched.add(countries.get(i));
}
}
return matched;
}
} |
Ma Jsp où je crée ma text box avec l'appel à autocomplete.js (les balises que je récupère dans ma textbox viennent de cette jsp, bizarre alors que c'est l'autre jsp qui est passé en argument de autocomplete.js) :
1 2 3 4 5 6 7 8 9
| <center>
<h3>Ville</h3>
<input type="text" id="country" name="country"/>
<script>
$("#country").autocomplete("getData.jsp");
</script> |
Et pour finir la Jsp dans laquelle sont récupérées les valeurs :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <%@page import="bdd.VillesDB"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.util.List"%>
<%@page import="bdd.VillesDB"%>
<%
VillesDB db = new VillesDB();
String query = request.getParameter("q");
List<String> countries = db.getData(query);
Iterator<String> iterator = countries.iterator();
while(iterator.hasNext()) {
String country = (String)iterator.next();
out.println(country);
}
%> |
La réponse doit être évidente mais elle m'échappe
Par ailleurs, pourriez vous m'expliquer cette ligne :
String query = request.getParameter("q");
Je ne comprends pas à quoi correspond la valeur "q".
Merci à vous.
Partager