Liste pour autocomplétion
Bonjour, j'ai une base de données SQL de villes avec leur code postal, et j'aimerais créer une liste qui contient les codes postaux de toutes les villes. Mais je ne sais pas trop comment remplir cette liste... Voilà ce que j'ai écrit :
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=Servicity', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Test d'autocomplete</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
</head>
<form>
<input type="text" id="recherche">
</form>
<?php
$req2 = $bdd->query('SELECT CP FROM cp');
?>
<script language="javascript">
$('#recherche').autocomplete({
source : <?php echo $req2; ?>,
minLength : 3
});
</script>
</html>
Pouvez-vous m'aider à résoudre ce problème ?
Merci d'avance !
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=Servicity', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Test d'autocomplete</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
</head>
<form>
<input type="text" id="recherche">
</form>
<?php
$req2 = $bdd->query('SELECT CP FROM cp');
?>
<script language="javascript">
$('#recherche').autocomplete({
source : <?php echo $req2; ?>,
minLength : 3
});
</script>
</html>
Pouvez-vous m'aider à résoudre ce problème ?
Merci d'avance !
7 réponses
-
Remplacez
$req2 = $bdd->query('SELECT CP, VILLE FROM cp');
par
$req2 = $bdd->query('SELECT CP, Ville FROM cp'); -
Elle contient trois colonnes, la première s'appelle CP, elle regroupe tous les codes postaux. La deuxième s'appelle Ville. Et la troisième Pays (j'ai les codes postaux des villes de France et de Belgique).
-
La table cp contient combien de colonnes?. Quel est le nom de ces colonnes ?
-
Merci pour ton code mais je ne sais pas pourquoi, ça ne marche pas...
Mais je crois que le problème vient de $row[1]. J'ai essayé de n'afficher que la colonne Ville, et ça ne marche pas...
Dans ma base de données, la première colonne correspond aux codes postaux, et la deuxième aux villes. Donc $row[1] correspond bien au ville normalement...
Vois-tu un problème ? -
<?php
//je suppose que la colonne des villes se trouve dans la table cp et qu'elle s'appelle VILLE
$req2 = $bdd->query('SELECT CP, VILLE FROM cp');
$data = array();
while ($row = $req2->fetch(PDO::FETCH_NUM)) {
array_push($data,$row[0] . ' - ' . $row[1]);
}
?>
<script language="javascript">
<?php
$js_array = json_encode($data);
echo "var liste = ". $js_array . ";\n";
?>
$('#recherche').autocomplete({
source : liste,
minLength : 3
});
</script> -
Merci beaucoup, cela marche à merveille ! Maintenant je ne voudrais pas abuser, mais j'ai ma base de données avec les codes postaux et les villes. Et j'aimerais lorsque je commence à écrire un code postal ça m'affiche des suggestions de la forme : Code - Ville.
Alors si je marque :
<?php
$req2 = $bdd->query('SELECT CP FROM cp');
$data = array();
$data = $req2->fetchAll(PDO::FETCH_COLUMN,0 - 1);
?>
<script language="javascript">
<?php
$js_array = json_encode($data);
echo "var liste = ". $js_array . ";\n";
?>
$('#recherche').autocomplete({
source : liste,
minLength : 3
});
</script>
Cela ne marche pas évidemment...
Avez-vous une idée ?
Merci d'avance ! -
essayer:
<?php
$req2 = $bdd->query('SELECT CP FROM cp');
$data = array();
$data = $req2->fetchAll(PDO::FETCH_COLUMN,0);
?>
<script language="javascript">
<?php
$js_array = json_encode($data);
echo "var liste = ". $js_array . ";\n";
?>
$('#recherche').autocomplete({
source : liste,
minLength : 3
});
</script>