champ de recherche auto-suggestif

91 messages dans ce sujet

Posté(e) · Signaler ce message

la il n'ya plus de limite et ça buggue.

En fait au dela de 150 dans le limit y a une erreur et effectivement avec juste l'id il n'y avais pas de soucis...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

et si c'etait dans l'article 151 qu'il y avait un souci de caractere spécial ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

en fait j'ai bien regardé, en fait dans les premiers cas, & est bien remplacé par & mais par la suite non,

à mon avis la solution consisterai ) mettre en place un str_replace du & par $amp; dans la chaine.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

genre

str_replace("&","&" , utf8_encode($article['nom_fr']))

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

en fait j'ai bien regardé, en fait dans les premiers cas, & est bien remplacé par & mais par la suite non,

à mon avis la solution consisterai ) mettre en place un str_replace du & par $amp; dans la chaine.

Bon tu est un AS, la ça fonctionne.

Reste a régler la pertinence des résultats, car la peux importe les lettres saisi, le formulaire propose tous les résultats.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

et là ce n'est qu'une requete sql amélioré, transforme $sql ...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

ca te donne ceci

$query = "SELECT * FROM `peel_produits` WHERE `nom_FR` like %".$_GET['keyword']."% ";

et bien sur, lorsque tu appelle la page tu appelle 'autocompletion.php?keyword='.motclef

et motclef étant la chaine récupérée, (je te rappelle que nous sommes en javascript donc pas de $ devant les variables)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

et là ce n'est qu'une requete sql amélioré, transforme $sql ...

Pas compris désolé.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

on a posté en meme temps, modifie ta requete comme indiqué au dessus non?

Le but c'est pas que le xml ne montre que les produits contenant le mot clef?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

on a posté en meme temps, modifie ta requete comme indiqué au dessus non?

Le but c'est pas que le xml ne montre que les produits contenant le mot clef?

Exactement si je tape "m" je veux voir les produit qui commence par "m".

Voici la requete mais ça ne fonctionne pas.

<?php
include("../configuration.inc.php");
header('Content-type: text/xml; charset=utf-8');

//$query = "SELECT * FROM `peel_produits` WHERE `etat`='1'";
$query = "SELECT * FROM `peel_produits` WHERE `nom_fr` like %".$_GET['input']."% ";
$result = @mysql_query($query);
$test=1;
if (mysql_num_rows($result) > 0) {
echo "<results>";
while ($article = mysql_fetch_array($result)) {
$bodytag = utf8_encode($article['nom_fr']);
$bodytag = str_replace("&", "$amp;", $bodytag);
echo "<rs id=\"".$article['id']."\" info=\"".$test."\">".$bodytag."</rs>";
$test++;
}
print "</results>";
}

?>[/codebox]

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

LA solution ce trouve dans le traitement des données sous forme de tableau dans le script d'exemple :

$input = strtolower( $_GET['input'] );
$len = strlen($input);


$aResults = array();

if ($len)
{
for ($i=0;$i<count($aUsers);$i++)
{
// had to use utf_decode, here
// not necessary if the results are coming from mysql
//
if (strtolower(substr(utf8_decode($aUsers[$i]),0,$len)) == $input)
$aResults[] = array( "id"=>($i+1) ,"value"=>htmlspecialchars($aUsers[$i]), "info"=>htmlspecialchars($aInfo[$i]) );

//if (stripos(utf8_decode($aUsers[$i]), $input) !== false)
// $aResults[] = array( "id"=>($i+1) ,"value"=>htmlspecialchars($aUsers[$i]), "info"=>htmlspecialchars($aInfo[$i]) );
}
}[/codebox]

Rest a faire une adaptation

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

http://www.3dvf.fr/autosuggest/bsn.AutoSuggest_2.1.html

Voila ça marche ;)

Par contre je ne reussi pas l'integration sur mon site : www.3dvf.fr

noya_m comment avez vous integrez le code dans haut.php?

J'ai regardé la source de votre site mais chez moi ça ne fonctionne pas.

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

je pense que tu as oublié d'inserer le fichier javascript ou le script javascript qui gere la requete XMLHTTP request

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

je pense que tu as oublié d'inserer le fichier javascript ou le script javascript qui gere la requete XMLHTTP request

Non j'ai bien tous mis dans haut .php :

<!-- ****************************** suggestion *************************************  -->
<script type"text/javascript">
var useBSNns = true;
</script>
<script type="text/javascript" src="http://www.3dvf.fr/autosuggest/js/bsn.AutoSuggest_2.1_comp.js" charset="utf-8"></script>
<link rel="stylesheet" href="http://www.3dvf.fr/autosuggest/css/autosuggest_inquisitor.css" type="text/css" media="screen" charset="utf-8" />
<!-- ****************************** suggestion ************************************* -->
</head>[/codebox]

[codebox]<td width="220" valign="top" class="boxText">
<form method="GET" action="achat/recherche.php" name="recherche">
<input class="formulaire1" type="text" name="motclef" size="15" id="testinput_xml" value="<?echo vb script:"http://www.3dvf.fr/autosuggest/test.php?json=true&",
varname:"input",
json:true,
shownoresults:false,
callback: function (obj) { document.getElementById('testid').value = obj.id; }
};
var as_json = new bsn.AutoSuggest('testinput', options);


var options_xml = {
script: function (input) { return "http://www.3dvf.fr/autosuggest/test.php?input="+input+"&testid="+document.getElementById('testid').value; },
varname:"input"
};
var as_xml = new bsn.AutoSuggest('testinput_xml', options_xml);

</script>

<!-- ************************************************** -->
</td>

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

c'est en ligne ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

trop facile, tu as fait une erreur de copie regarde :

<script type"text/javascript">

var useBSNns = true;

</script>

c'est

<script type="text/javascript">

var useBSNns = true;

</script>

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

non ce n'est pas ça, l'erreur est présente sur la page de demonstration est le script fonctionne quand même. La je viens de corriger chez moi, mais ça ne fonctionne toujours pas.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

arf, bon je regarde la suite désolé..

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

extrait de ton code source, le get element by id va chercher l'iid testid alors que toi tu as pour id pour le champs de recherche :"testinput_xml"

	 <input type="text" name="motclef" size="15"  value="" id="testinput_xml">

	   <input src="http://www.3dvf.fr/template/button_search.gif" alt="Recherche" title=" Recherche " border="0" type="image">


	   </form>

	   <!-- ******************** suggestion ****************************** -->

<script type="text/javascript">

	var options = {

		script:"http://www.3dvf.fr/autosuggest/test.php?json=true&",

		varname:"input",

		json:true,

		shownoresults:false,

		callback: function (obj) { document.getElementById('testid').value = obj.id; }

	};

	var as_json = new bsn.AutoSuggest('testinput', options);



	var options_xml = {

		script: function (input) { return "http://www.3dvf.fr/autosuggest/test.php?input="+input+"&testid="+document.getElementById('testid').value; },

		varname:"input"

	};

	var as_xml = new bsn.AutoSuggest('testinput_xml', options_xml);


</script>


<!-- ************************************************** -->

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

et puisque j'y suis, pense à metre une limite à 15au moins, mais aussi dans la requete sql à verifier si le produit est en ligne ou non.. parce que je viens de tomber sur un test meta qui je pense n'est pas forcement là d'habitude.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

c'est exactement le meme code que l'exemple donc l'erreur ne viens pas de la.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Salut,

envois moi tes fichiers afin de le mettre dans ton code en privé

Voila ça marche ;)

Par contre je ne reussi pas l'integration sur mon site : www.3dvf.fr

noya_m comment avez vous integrez le code dans haut.php?

J'ai regardé la source de votre site mais chez moi ça ne fonctionne pas.

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Pouvez vous mettre le code de test.php sur cette page

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Salut,

envois moi tes fichiers afin de le mettre dans ton code en privé

Dans la boite...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

test.php le voici :

<?php
include("../configuration.inc.php");
$input = $_REQUEST['input'];
$aResults = array();

$query = "SELECT * FROM `peel_produits` WHERE `nom_fr` LIKE '".$input."%' ";
$qr = @mysql_query($query);

while($row=mysql_fetch_array($qr))
{
$aResults[] = array( "id"=>($row['id']) ,"value"=>htmlspecialchars($row['nom_fr']), "info"=>htmlspecialchars($row['id']) );
}

header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");

if (isset($_REQUEST['json']))
{
header("Content-Type: application/json");

echo "{\"results\": [";
$arr = array();
for ($i=0;$i<count($aResults);$i++)
{
$arr[] = "{\"id\": \"".$aResults[$i]['id']."\", \"value\": \"".$aResults[$i]['value']."\", \"info\": \"\"}";
}
echo implode(", ", $arr);
echo "]}";
}
else
{
header("Content-Type: text/xml");

echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?><results>";
for ($i=0;$i<count($aResults);$i++)
{
echo "<rs id=\"".$aResults[$i]['id']."\" info=\"".$aResults[$i]['info']."\">".$aResults[$i]['value']."</rs>";
}
echo "</results>";
}
?>[/codebox]

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping