11496 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Je suis actuellement en train de mettre en place un formulaire de recherche utilisant le plugin jquery Autocomplete.

Pas de soucis pour afficher le résultat d'une requête dans l'input.

Mais je souhaiterais en plus effectuer un location.href en choisissant une proposition.

Voici mon code HTML et l'appel au plugin


<!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>
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<meta http-equiv="content-Language" content="fr" />
	<title>Guide des maisons de retraite</title>
	<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
	<script type='text/javascript' src="js/jquery.autocomplete.min.js"></script>
	<link rel="stylesheet" type="text/css" href="css/jquery.autocomplete.css" />
	<script type="text/javascript">
	$().ready(function() {
		$("#guide").autocomplete('sql.php', {
			width: 500,
			autoFill : true,
			matchContains: true,
			cacheLength : 100,
			//mustMatch: true,
			//minChars: 0,
			//multiple: true,
			//highlight: false,
			//multipleSeparator: ", ",
			max : 100,
			selectFirst: false,
			formatItem: function(item) {
				return item.libelle;
			}
		}).result(function(event, item) {
			/*if(item.type == 'fiche'){*/
				location.href = item.url;
			/*}*/
		});
	});
	</script>
</head>
<body>
	<div id="content">
		<form autocomplete="off">
			<p>
				Recherche <label>:</label>
				<input type="text" name="course" id="guide" />
			</p>
			<input type="submit" value="Submit" />
		</form>
	</div>
</body>


Et voici mon code PHP :


<?php

$cnn_mon = mysql_connect('localhost', 'root', '');
mysql_select_db('enquete_concours');
mysql_query("SET NAMES 'utf8'");

$q = strtolower($_GET["q"]);
if (!$q) return;

$sql = "select DISTINCT libelle, url from guide_ehpad_recherche where libelle LIKE '%$q%'";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) {
	$tab['libelle'] = $rs['libelle'];
	$tab['url'] = $rs['url'];
	$json .= json_encode($tab).', ';
}
	$pos = strrpos($json, ',');
	$json = substr($json, 0, $pos);
	echo $json;
?>


J'ai une erreur JS, alors qu'en utilisant l'exemple tout en bas donné sur cette page, http://docs.jquery.com/Plugins/Autocomplete#Example

cela fonctionne.

J'ai donc je pense un problème de formatage de mon Json.

Si vous voyez d'où vient le problème, merci par avance!!
Modifié par ccsuperstar (09 May 2011 - 14:34)