Le 10/3/08 3:01 AM, bpdu92 a écrit :
>>
> voici ce que je comprends du mecanisme
> I-l'objectif est de proposer à l'internaute un affichage dynamique
> -dit autocomplete- de termes établis à partir de ce qu'il a déjà
> saisi;
> l'internaute n'a qu'à cliquer sur celui qui convient
Voilà.
Il faudrait savoir ce que tu veux faire exactement.
Est-ce simplement une aide à recherche sur ton site et/ou la page affichée ?
Sans faire trop compliqué, tu peux bien avoir une liste de mots-clés du
site pré-établie et l'obtenir en JavaScript directement (ça ne pèse
presque rien)
> II-principe
> 1-envoi continu (aprés chaque carac. saisi) d'un choix de termes par
> le navigateur, sans action explicite de l'internaute, pour indiquer au
> serveur où en est la saisie locale,
Ça peut se faire directement si la liste n'est pas "universelle".
Le plus compliqué est la mise en place du système d'auto-complétion ou
auto-suggestion :
- pertinence croissante
(élimination des termes inapropriés au fur et à mesure de la frappe)
- méthode d'affichage de la liste (sous le champ d'entrée)
> ce dernier peut alors renvoyer des termes de plus en plus
> vraisemblables
>
> ces termes peuvent venir
> 2-du client, au moyen de cookies, qui ont permis de mémoriser les
> termes (les mots-clé) qu'il a soumis precedemment
Et ceci est discutable ...
J'ai ainsi une série de propositions fausses dues à une mauvaise frappe.
> 3-du serveur, à l'aide de sa base de données
ou de sa liste personnelle.
> III-techno
> 1-envoi de la saisie sans utiliser les méthodes Ajax (essentielt
> XMLHttpRequest ) mais par un classique form-submit
à mon idée : à proscrire absolument (lenteurs)
> 2-elaboration de la reponse sur le serveur par modifs dynamiques de
> page, faites avec des replace en JS, ou str_replace en PHP
> 3-affichage des termes complétés par document.form
>
> ni la saisie, ni les termes suggérés ne sont listés si on affiche le
> source
?? je sais pô mais ... FireBug l'affiche lui.
Sur http://www.google.com/webhp?complete=1&hl=fr
Je vois le code :
<script id="gac_a"
src="http://clients1.google.com/complete/search?hl=fr&q=g">
et le fichier envoyé contient bien la liste de suggestions :
1window.google.ac.h(["g",[["gmail","216 000 000 résultats","1"],["google
map","86 200 000 résultats","2"],["google earth","69 200 000
résultats","3"],["guide michelin","753 000 résultats","4"],["go
sport","57 800 000 résultats","5"],["geoportail","382 000
résultats","6"],["gites de france","1 580 000
résultats","7"],["grosbill","2 450 000 résultats","8"],["go voyage","748
000 résultats","9"],["google video","215 000 000 résultats","10"]]])
Ça doit être basé sur Json.
Le principe alors, et si j'ai bien compris, consiste, lors du choix d'un
item, de faire créer un nouvel appel à script JS externe
(qui renvoie une nouvelle liste établie côté serveur)
Tiens l'appel au script externe est devenu là :
<script id="gac_a"
src="http://clients1.google.com/complete/search?hl=fr&q=construire%20un%20at">
1window.google.ac.h(["construire un at",[]])
</script>
bon ... je suis arrivé à la limite des termes prévus
> à l'ecoute de vos propositions de mise à jour,
function newListe() {
var cible = document.getElementById('gac_a');
var s = document.createElement('script');
s.type = 'text/javascript';
s.src = 'http://recherche.php?cherche=' +
document.forms[0].recheche.value;
cible.parentNode.replaceChild(s, cible);
s.id = 'gac_a';
}
--
sm