Où en est-tu de tes tests ? tu as pu déterminer l'url à appeler ?
Peux tu nous mettre le source généré de la page comprenant l'autocompleter ainsi que le source généré de la page appelée par l'autocompleter ?
Version imprimable
Où en est-tu de tes tests ? tu as pu déterminer l'url à appeler ?
Peux tu nous mettre le source généré de la page comprenant l'autocompleter ainsi que le source généré de la page appelée par l'autocompleter ?
Oui j'ai réussi a déterminer mon url.
Code:
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 <script LANGUAGE="JavaScript" src="prototype/prototype.js"></script> <script LANGUAGE="JavaScript" src="scriptaculous/scriptaculous.js"></script> <td><input type="text" id="number" name= "number" value=""/></td> <div id="number_choices" class="autocomplete"></div> <% DBConnexion dbc = new DBConnexion(); String numero= request.getParameter("number"); String sql = "SELECT num FROM eotp WHERE num like'"+numero+"%'"; ResultSet resultat = dbc.recupereRequete(sql); while(resultat.next()) { } %> <script language="javascript"> new Ajax.Autocompleter("number", "number_choices", "<%= request.getContextPath()%>/application/test.jsp", { paramName: "number", minChars: 1, }); </script>
Le code généré est:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <script LANGUAGE="JavaScript" src="prototype/prototype.js"></script> <script LANGUAGE="JavaScript" src="scriptaculous/scriptaculous.js"></script> <td><input type="text" id="number" name= "number" value=""/></td> <div id="number_choices" class="autocomplete"></div> <script language="javascript"> new Ajax.Autocompleter("number", "number_choices", "/web/application/test.jsp", { paramName: "number", minChars: 1, }); </script> Voiila Mais auto completer ne fonctionne pas. Je pense que je l'utilise mal.
Tu as une petite erreur de syntaxe :
Pour le reste, commence par faire en sorte que test.jsp renvoie en dur :Code:
1
2
3
4
5
6 <script language="javascript"> new Ajax.Autocompleter("number", "number_choices", "/web/application/test.jsp", { paramName: "number", minChars: 1 , // supprimer cette virgule }); </script>
Code:
1
2
3
4
5
6 <ul> <li>valeur 1</li> <li>valeur 2</li> <li>valeur 3</li> </ul>
j'ai penser a faire cela
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <script LANGUAGE="JavaScript" src="prototype/prototype.js"></script> <script LANGUAGE="JavaScript" src="scriptaculous/scriptaculous.js"></script> <td><input type="text" id="number" name= "number"/></td> <div id="number_choices" class="autocomplete"></div> <script language="javascript"> new Ajax.Autocompleter("number", "number_choices", "<%= request.getContextPath()%>/application/test.jsp", { paramName: 'number', minChars: 1 }); </script> <% String s =request.getParameter("number"); String tab[] = {"valeur1","valeur2","valeur3"}; out.println("<ul>"); for(s : tab) out.println("<li>"+tab+"</li>"); out.print("</ul>"); %>
le souci, c'est que tu utilises la même page pour dessiner l'autocompleter et pour le remplir... donc c'est plus difficile ; tu peux peut-être faire ca :
Code:
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 <% // tout en haut de ta jsp, juste après les initialisations String s =request.getParameter("number"); if(s != null) { String tab[] = {"valeur1","valeur2","valeur3"}; out.println("<ul>"); for(s : tab) out.println("<li>"+tab+"</li>"); out.print("</ul>"); return; } %> <!-- là tu commences le reste de ta page ( --> <script LANGUAGE="JavaScript" src="prototype/prototype.js"></script> <script LANGUAGE="JavaScript" src="scriptaculous/scriptaculous.js"></script> <td><input type="text" id="number" name= "number"/></td> <div id="number_choices" class="autocomplete"></div> <script language="javascript"> new Ajax.Autocompleter("number", "number_choices", "<%= request.getContextPath()%>/application/test.jsp", { paramName: 'number', minChars: 1 }); </script>
De toute façon le bout de code que j'ai fait je viens de le tester, il marche pas. Je pouvais pas l'essayer avant j'avais un soucis
j'ai changer je possède deux page.
j'ai une page renseignement et une page traitement.jsp
renseignement.jsp:
traitement.jsp:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 <script LANGUAGE="JavaScript" src="prototype/prototype.js"></script> <script LANGUAGE="JavaScript" src="scriptaculous/scriptaculous.js"></script> <td><input type="text" id="number" name= "number"/></td> <div id="number_choices" class="autocomplete"></div> <script language="javascript"> new Ajax.Autocompleter("eotp1", "number_choices", "<%= request.getContextPath()%>/application/traitement.jsp", { paramName: 'number', minChars: 1 }); </script>
Est ce qui faut telecharger quelque chose pour utiliser script.aculo.us car j'ai regarde sur le cour, il dise avant tout il faut telecharger la librairie. Et sur internet j'ai vu que c'était pas obliger.Code:
1
2
3
4
5
6
7 <% DBConnexion dbc = new DBConnexion(); String num= request.getParameter("value"); String sql = "SELECT number FROM eotp WHERE number like'"+num+"%'"; ResultSet resultat = dbc.recupereRequete(sql); %>
Je comprend pas pourquoi mon auto completer ne fonctionne pas
et dans ma page traitementCompleter.jspCode:
1
2
3
4
5
6
7
8
9
10
11
12
13 <script LANGUAGE="JavaScript" src="prototype/prototype.js"></script> <script LANGUAGE="JavaScript" src="scriptaculous/scriptaculous.js"></script> <td><input type="text" id="eotp1" name= "eotp1"/></td> <div id="numEotp_choices" class="autocomplete"></div> <script language="javascript"> new Ajax.Autocompleter("eotp1", "numEotp_choices", "<%= request.getContextPath()%>/application/traitementCompleter.jsp", { paramName: 'eotp1', minChars: 1 }); </script>
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 <% DBConnexion dbc = new DBConnexion(); String num= request.getParameter("eotp1"); String sql = "SELECT num_eotp FROM eotp WHERE num_eotp like'"+num+"%'"; ResultSet resultat = dbc.recupereRequete(sql); out.println("<ul>"); while(resultat.next()) { out.println("<li>"+resultat.getString("num_eotp")+"</li>"); } out.print("</ul>"); %>
En javascript je pense vu que le chemin indiquer est bon.
Le symptome est que lorsque je commence a taper rien ce s'affiche dans mon champs texte
oui quand j'appelle en direct ma page j'ai bien <ul></ul> qui s'affiche
As-tu des erreurs javascript ? (triangle jaune en bas de ie ou dans la console pour firefox) et si oui lesquelles.
Le resultat doit s'afficher dans la div (numEotp_choices) peut-être un probleme de style ? tu es sure que ce que tu tapes renvoies des résultats ?
Je te conseille de commencer par mettre un résultat en dur dans traitementCompleter.jsp par exemple
et de commenter tout le code.Code:
1
2
3
4
5
6
7 <ul> <li>test</li> <li>test</li> <li>test</li> <li>test</li> </ul>
Même en dur cela ne fonctionne pas
Si c'est bon j'ai trouver une erreur
Ajax n'est pas défini
mon code générer
pour celui qui n'est pas en dur j'ai
<ul>
</ul>
rien de plus
As-tu inclus prototype et scriptaculous dans ta page ? et si oui, les chemins vers ces librairies sont-ils bons ?
<script LANGUAGE="JavaScript" src="prototype/prototype.js"></script>
<script LANGUAGE="JavaScript" src="scriptaculous/scriptaculous.js"></script>
tu parle de ces deux la??
comment je peux savoir si le chemin est le bon?
oui
Comme d'habitude :
si tu es sur la page http://localhost/chemin/vers/une/page.jsp,
alors, l'url http://localhost/chemin/vers/une/prototype/prototype.js
doit te renvoyer le script prototype.
Le mieux serait quand même de mettre (en jsp):
où /chemin/vers/ commence à la racine de ta webappCode:<script LANGUAGE="JavaScript" src="<%= request.getContextPath() %>/chemin/vers/prototype.js">
Mais il me renvoie aucun scriptCode:
1
2
3
4 <script LANGUAGE="JavaScript" src=="<%= request.getContextPath()%>/application/prototype.js"></script> <script LANGUAGE="JavaScript" src="<%= request.getContextPath()%>/application/scriptaculous.js"></script>