Salut a tous,
je suis actuellement en train de developper un site intranet durant mon stage de fin d'étude et je me heurte à un problème (mon tuteur ne sait pas comment le régler) c'est pourquoi je me tourne vers vous
.
Donc la situation :
Le site que je developpe comporte un moteur de recherche "full-text" autrement dit il est capable de rechercher un mot dans le contenu de fichiers *.pdf que les utilisateurs upload. Pour ce faire on m'a demandé d'utiliser htdig.
Le moteur fonctionne parfaitement mais il me faut l'implanter au sein de mon site.
J'ai donc un formulaire de recherche, avec un champ "words" qui une fois validé transmet le(s) mot(s) recherché(s) au moteur, qui lui, fait sa recherche et me renvoi le resultat sous la forme d'une page (modèle html ou certaines balises sont remplacées par les résulats).
C'est là que ça se corse :
lorsque j'affiche cette page de résultat, je n'ai aucun problème. Maintenant afin de l'implanter dans mon site j'ai fait la chose suivante :
lorsqu'on rempli le formulaire et qu'on valide, AJAX prend la chose en main, il envoi la requete au moteur et je lui demande d'afficher le résultat dans une <div id="contenu"> </div> de ma page. Tout ceci fonctionne mais lorsque je passe par Ajax, plus aucun caractère spécial n'est affiché corretement.
place au image c'est mieux (je suis obligé de flouter des parties désolé)
sans ajax, page de resultat normale :
ici
avec ajax, page de resultat placer dans un div :
et là
Et voici le code :
Du formulaire :
et mon code JS :
J'ai tenté d'utiliser différentes méthodes de "response" => responseXML, stream ... mais comme je m'en doutais ça n'a pas marché et j'ai aussi essayé des fonctions tel que encodeURI ou escape sur mon xhr.responseText mais ça ne marche pas.
et la page de résultat :
Les textes de type $(XX) sont remplacés par le moteur de recherche (cgi).
Voila en espérent ne pas vous avoir trop embrouillé je reste à disposition pour toute information complémentaire et je pense que vous deviendrez mon Gourou si vous trouvez la solution à mon problème.
Amicalement FOX1.
Modifié par FOX1 (12 May 2006 - 10:04)
je suis actuellement en train de developper un site intranet durant mon stage de fin d'étude et je me heurte à un problème (mon tuteur ne sait pas comment le régler) c'est pourquoi je me tourne vers vous

Donc la situation :
Le site que je developpe comporte un moteur de recherche "full-text" autrement dit il est capable de rechercher un mot dans le contenu de fichiers *.pdf que les utilisateurs upload. Pour ce faire on m'a demandé d'utiliser htdig.
Le moteur fonctionne parfaitement mais il me faut l'implanter au sein de mon site.
J'ai donc un formulaire de recherche, avec un champ "words" qui une fois validé transmet le(s) mot(s) recherché(s) au moteur, qui lui, fait sa recherche et me renvoi le resultat sous la forme d'une page (modèle html ou certaines balises sont remplacées par les résulats).
C'est là que ça se corse :
lorsque j'affiche cette page de résultat, je n'ai aucun problème. Maintenant afin de l'implanter dans mon site j'ai fait la chose suivante :
lorsqu'on rempli le formulaire et qu'on valide, AJAX prend la chose en main, il envoi la requete au moteur et je lui demande d'afficher le résultat dans une <div id="contenu"> </div> de ma page. Tout ceci fonctionne mais lorsque je passe par Ajax, plus aucun caractère spécial n'est affiché corretement.
place au image c'est mieux (je suis obligé de flouter des parties désolé)
sans ajax, page de resultat normale :
ici
avec ajax, page de resultat placer dans un div :
et là
Et voici le code :
Du formulaire :
<form class="form" action="javascript:contenu('contenu','../cgi-bin/htsearch', 'post', 'method=and&format=builtin-short&sort=score&config=htdig&restric=&exclude=&words='+document.forms[0].words.value);">
<fieldset>
<p>
<input name="words" size="25" />
<input type="submit" value="Ok" />
</p>
</fieldset>
</form>
et mon code JS :
function getXhr()
{
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
{
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP"); // IE version > 5
}
catch(e)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else // XMLHttpRequest non supporté par le navigateur
{
alert("Votre navigateur ne supporte pas les objets XMLHttpRequest !");
xhr = false;
}
return xhr;
} // getXhr()
function contenu(id, php, method, param)
{
getXhr();
xhr.open(method,php,true); // Ouvre la connexion avec le serveur http avec comme url php
xhr.send(param); // Envoie l'url php pour exécution au serveur http
// Exécution de la fonction dès que l'on obtient une réponse du serveur http
xhr.onreadystatechange = function()
{
// Si on a tout reçu et que le serveur est ok
// Modifie suivant le code php l'élément ayant pour identificateur id
if(xhr.readyState == 4 && xhr.status == 200)
{
document.getElementById(id).innerHTML = xhr.responseText;
}
}
}
J'ai tenté d'utiliser différentes méthodes de "response" => responseXML, stream ... mais comme je m'en doutais ça n'a pas marché et j'ai aussi essayé des fonctions tel que encodeURI ou escape sur mon xhr.responseText mais ça ne marche pas.
et la page de résultat :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Site de test</title>
<meta http-equiv="Content-Type" content="text/html: charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="../Css/appli.css" media="screen" />
</head>
<body bgcolor="#eef7ff">
<h2>Résultats de la recherche pour '$&(LOGICAL_WORDS)'</h2>
<hr noshade>
<strong>Résultats $(FIRSTDISPLAYED) - $(LASTDISPLAYED) sur $(MATCHES) résultats.
Les <img src="/searchimg/star.gif" alt="*"> indiquent un meilleur resultat.
</strong>
<hr noshade>
$(HTSEARCH_RESULTS)
$(PAGEHEADER)
$(PREVPAGE) $(PAGELIST) $(NEXTPAGE)
</body></html>
Les textes de type $(XX) sont remplacés par le moteur de recherche (cgi).
Voila en espérent ne pas vous avoir trop embrouillé je reste à disposition pour toute information complémentaire et je pense que vous deviendrez mon Gourou si vous trouvez la solution à mon problème.
Amicalement FOX1.
Modifié par FOX1 (12 May 2006 - 10:04)