Liste pour autocomplétion
                    
        
     
             
                    parousky
    
        
    
                    Messages postés
            
                
     
             
            325
        
            
                            Date d'inscription
             
                            Statut
            Membre
                            Dernière intervention
             
            
                -
                                     
zermat Messages postés 160 Statut Membre -
        zermat Messages postés 160 Statut Membre -
        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 !
        A voir également:         
- Liste pour autocomplétion
- Liste déroulante excel - Guide
- Liste code ascii - Guide
- Liste déroulante en cascade - Guide
- Site dangereux liste - Guide
- Voir liste d'amis facebook - Guide
7 réponses
                        
                    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>
    
                <?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>
                        
                    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 !
    
                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 !
                        
                    <?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>
    
                //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 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 ?
    
                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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question