Bonjour à tous et d'ores et déjà, merci d'avance pour l'aide que vous pourrez m'apporter.
Voici mon soucis.
Sur mon site, j'ai mis en place un système d'auto-complétion basé sur jquery ui autocomplete.
Mon système est assez basique, je dois faire une proposition de codes postaux et récupérer l'id du code postal sélectionné.
Le plus simple, je pense c'est de vous montrer mon code:
HTML:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <form action="<?php echo $_GET['lg'].'/jobcenter.html'; ?>" method="GET"> <input type="text" name="keyword" placeholder="<?php echo KEYWORDS; ?>"/> <input type="hidden" name="selected_country" value="be" /> <input type="text" name="pc" id="pc" placeholder="<?php echo CP; ?>" /> <input type="hidden" name="id_pc" id="id_pc" /> <input type="submit" name="hpform" class="upper_box" value="<?php echo TROUVER; ?>" /> </form>
Javascript :
PHP:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 $('#pc').autocomplete({ autoFocus: true, delay: 0, source : function(requete, response){ $.ajax({ url : 'include/request/get_cp.php', dataType : 'json', data : { recherche: $('#pc').val(), country: $('#selected_country').val() }, maxRows : 15, success: function(data) { console.log(data.donnee); response($.map(data.donnee, function(item) { return { label: item.city+' ('+item.zip+')', value: item.city+' ('+item.zip+')', id: item.zip } })); } }); }, select: function (event, ui) { if (event.keyCode == 13) { $(this).next("input").focus().select(); } $('#id_pc').val(ui.item.id); } });
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $recherche = strtolower($_GET["recherche"]); $result=$connexion->prepare("SELECT * FROM geopc_be WHERE ZIP LIKE :recherche OR City LIKE :recherche ORDER BY ZIP"); $result->bindValue(':recherche', $recherche.'%', PDO::PARAM_STR); $result->execute(); while($data = $result->fetch(PDO::FETCH_OBJ)) // on effectue une boucle pour obtenir les données { $options['donnee'][] = array( 'city' => $data->City, 'zip' => $data->ZIP ); } echo json_encode($options);
J'ai testé le script sur Firefox, Safari, Opéra et tout se passe parfaitement.
Et pour être fidèle à lui-même, IE me fait des siennes; il n'affiche pas la liste de suggestion.
J'ai lancé la console débogage et celle-ci me retourne le message suivant:
faisant référence à la ligne suivante dans mon javascript:SCRIPT5007: Impossible d’obtenir la valeur de la propriété « donnee » : objet null ou non défini
Une journée entière à fouiller sur les forums et je ne trouve rien.console.log(data.donnee);
Je m'en remets donc à vous![]()
Partager