Liste pour autocomplétion

parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   -  
zermat Messages postés 160 Date d'inscription   Statut Membre Dernière intervention   -
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 !
A voir également:

7 réponses

zermat Messages postés 160 Date d'inscription   Statut Membre Dernière intervention   16
 
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>
0
parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   6
 
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 !
0
zermat Messages postés 160 Date d'inscription   Statut Membre Dernière intervention   16
 
<?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>
0
parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   6
 
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zermat Messages postés 160 Date d'inscription   Statut Membre Dernière intervention   16
 
La table cp contient combien de colonnes?. Quel est le nom de ces colonnes ?
0
parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   6
 
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).
0
zermat Messages postés 160 Date d'inscription   Statut Membre Dernière intervention   16
 
Remplacez
$req2 = $bdd->query('SELECT CP, VILLE FROM cp');
par
$req2 = $bdd->query('SELECT CP, Ville FROM cp');
0