Autocomplétion PHP Mysql Jquery
Bonjour la communauté, je suis nouvelle dans le furum et j'ai un soucis pour réaliser un système de recherche avec autocomplétion en php mysql et jquery.
J'ai fait des recherche et je suis tombé sur le lien suivant: http://x-zolezzi.developpez.com/tuto...utocompletion/ qui me donne un exemple, j'ai téléchargé le fichier zip et j'ai suivi la procédure d'installation décrite dans le fichier install.txt afin de l'adapter à mon contexte mais jusqu'ici je n'ai pas de résultat.
Si quelqu'un peut me guider et me dire où j'ai failli. Cordialement...
Voici mon code:
fichier index.php
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head >
<title>AutoCompletion</title>
<script type="text/javascript" src="jquery/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
<script type="text/javascript">
var cache = {};
$(function ()
{
$("#cp, #ville").autocomplete({
source: function (request, response)
{
//Si la réponse est dans le cache
if (('FR' + '-' + request.term) in cache)
{
response($.map(cache['FR' + '-' + request.term], function (item)
{
return {
label: item.CodePostal + ", " + item.Ville,
value: function ()
{
if ($(this).attr('id') == 'cp')
{
$('#ville').val(item.Ville);
return item.CodePostal;
}
else
{
$('#cp').val(item.CodePostal);
return item.Ville;
}
}
}
}));
}
//Sinon -> Requete Ajax
else
{
var objData = {};
if ($(this.element).attr('id') == 'cp')
{
objData = { codePostal: request.term, pays: 'FR', maxRows: 10 };
}
else
{
objData = { ville: request.term, pays: 'FR', maxRows: 10 };
}
$.ajax({
url: "AutoCompletion.php",
dataType: "json",
data: objData,
type: 'POST',
success: function (data)
{
//Ajout de reponse dans le cache
cache[('FR' + '-' + request.term)] = data;
response($.map(data, function (item)
{
return {
label: item.CodePostal + ", " + item.Ville,
value: function ()
{
if ($(this).attr('id') == 'cp')
{
$('#ville').val(item.Ville);
return item.CodePostal;
}
else
{
$('#cp').val(item.CodePostal);
return item.Ville;
}
}
}
}));
}
});
}
},
minLength: 3,
delay: 600
});
});
</script>
<link rel="Stylesheet" type="text/css" href="jquery-ui.css" />
</head>
<body>
<form action="#">
CP :<input type="text" id="cp" size="6"/>
Ville : <input type="text" id="ville" />
</form>
</body>
</html>[/COLOR]
fichier AutoCompletionCPVille.class.php
[COLOR="#FF0000"]
<?php
class AutoCompletionCPVille {
public $CodePostal;
public $Ville;
}
?> |
fichier AutoCompletion.php
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| <?php
require_once('AutoCompletionCPVille.class.php');
//Initialisation de la liste
$list = array();
//Connexion MySQL
try
{
$db = new PDO('mysql:host=localhost;dbname=autocompletion', 'root', '');
}
catch (Exception $ex)
{
echo $ex->getMessage();
}
//Construction de la requete
$strQuery = "SELECT CP CodePostal, VILLE Ville FROM autocomplete WHERE ";
if (isset($_POST["codePostal"]))
{
$strQuery .= "CP LIKE :codePostal ";
}
else
{
$strQuery .= "VILLE LIKE :ville ";
}
$strQuery .= "AND CODEPAYS = 'FR' ";
//Limite
if (isset($_POST["maxRows"]))
{
$strQuery .= "LIMIT 0, :maxRows";
}
$query = $db->prepare($strQuery);
if (isset($_POST["codePostal"]))
{
$value = $_POST["codePostal"]."%";
$query->bindParam(":codePostal", $value, PDO::PARAM_STR);
}
else
{
$value = $_POST["ville"]."%";
$query->bindParam(":ville", $value, PDO::PARAM_STR);
}
//Limite
if (isset($_POST["maxRows"]))
{
$valueRows = intval($_POST["maxRows"]);
$query->bindParam(":maxRows", $valueRows, PDO::PARAM_INT);
}
$query->execute();
$list = $query->fetchAll(PDO::FETCH_CLASS, "AutoCompletionCPVille");;
echo json_encode($list);
?> |
Merci d'avance pour vos réponses :oops: