Hello,
je rencontre un problème que je n'arrive pas à résoudre : j'envoie une variable à un script PHP afin de récupérer des codes postaux en rapport, je renvoie le tout en json à mon script .js et je boucle sur les résultats pour afficher une liste de suggestions.
Je récupère correctement le tableau lorsque je fais un alert(data), cependant impossible d'afficher les résultats complets ; pour chaque clé la valeur affichée est juste 1 lettre, en l'occurrence mes résultats sont épelés lorsque je les affiche.
Je pense que c'est côté jQuery que ça merde car mon alert(data) me renvoie ceci :
Mais m'affiche plutôt cela lorsque je boucle dessus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part data = ["01380 - BAGE LA VILLE ","01380 - BAGE LE CHATEL ","09160 - BAGERT","01360 - BALAN ","08200 - BALAN","01990 - BANEINS ","01270 - BEAUPONT ","01480 - BEAUREGARD ","01360 - BELIGNEUX ","01200 - BELLEGARDE SUR VALSERINE ","01300 - BELLEY ","01130 - BELLEYDOUX ","01810 - BELLIGNAT ","01260 - BELMONT LUTHEZIEU ","01470 - BENONCES ","01370 - BENY ","01350 - BEON ","01340 - BEREZIAT ","01500 - BETTANT ","01290 - BEY ","01700 - BEYNOST ","01200 - BILLIAT ","01330 - BIRIEUX ","01290 - BIZIAT ","01150 - BLYES ","01250 - BOHAS ","01250 - BOHAS MEYRIAT RIGNAT ","01190 - BOISSEY ","01450 - BOLOZON ","01330 - BOULIGNEUX ","01000 - BOURG EN BRESSE ","01800 - BOURG ST CHRISTOPHE ","01100 - BOUVENT ","01640 - BOYEUX ST JEROME ","01190 - BOZ ","01300 - BREGNIER CORDON ","01260 - BRENAZ ","01110 - BRENOD ","01300 - BRENS ","01360 - BRESSOLLES ","01460 - BRION ","01470 - BRIORD ","01000 - BROU ","01310 - BUELLAS "]
Voici ma fonction dans le .js :
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 key 0 = [ key 1 = " key 2 = 0 key 3 = 1 key 4 = 3 key 5 = 8 key 6 = 0 key 7 = key 8 = - key 9 = key 10 = B key 11 = A key 12 = G etc.
et mon 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 $("#zip").keypress(function(){ var myData = { dep: $("#dept").val(), zip: $("#zip").val() }; if($('#zip').val().length != 0){ var POSITION = $('#zip').position(); $.post($(location).attr('href'), myData, function success(data){ if(data != "0"){ alert('data = '+data); $.each(data, function(key, value) { if(key == 0){ $('#results_comp').children().remove().end().append('<li class="li_res" id="'+value+'">'+value+'</li>'); }else if(key < 15){ //j'affiche 15 résultats maxi $('#results_comp').append('<li class="li_res" id="'+value+'">'+value+'</li>'); } }); }else if(data == "0"){ alert('aucune donnée'); } }); } });
Une idée de ce qui peut clocher ?
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
33
34
35
36
37
38
39
40
41
42 <?php $cp = htmlentities($_POST['zip']); $dpt = $_POST['dep']; $LEN = strlen($cp); function SA($chaine){ return strtr($chaine, 'àâäåãáÂÄÀÅÃÁæÆçÇéèêëÉÊËÈïîìíÏÎÌÍñÑöôóòõÓÔÖÒÕùûüúÜÛÙÚÿ', 'aaaaaaaaaaaaaacceeeeeeeeiiiiiiiinnoooooooooouuuuuuuuy'); } if(is_numeric($cp)){ $requete = "SELECT ville, cp, id_dpt FROM cpf WHERE id_dpt = '$dpt' AND cp LIKE '$cp%'"; }else{ $cp = strtoupper(SA($cp)); $requete = "SELECT ville, cp, id_dpt FROM cpf WHERE id_dpt = '$dpt' AND ville LIKE '$cp%'"; } $RESULTS = array(); $NB = 0; $pdo = PDO2::getInstance(); $req = $pdo->query($requete); while($donnees = $req->fetch()) { $ville = utf8_encode($donnees['ville']); $zip = $donnees['cp']; if($NB < 50){ $result = $zip . ' - ' . $ville; $RESULTS[] = $result; $NB++; } } if(count($RESULTS) > 0){ header('Content-type: application/json'); echo json_encode($RESULTS); }else{ echo "0"; }
Merci d'avance à celles et ceux qui prendront le temps de me lire
BBFUNK01
Partager