Bonjour/Bonsoir Toufik83,
Désolé de déterrer ce post, mais je rencontre un souci entre le communication de mes codes PHP et Ajax: Vous disiez de ne pas faire d echo ou de print_r dans le code PHP qui envoyait les informations à l'appel Ajax. Mais je n'ai pas pris la peine de vous demander pourquoi ? Du coup, je me retrouve face à un problème similaire. Je dois à tout prix utiliser la fonction explode() dans ce code php, mais son utilisation entraine un message d'erreur Ajax, je ne sais pas quoi faire.
Mon code PHP:
Je comptais faire une bouche par la suite, pour récupérer chaque chemin, mais la fonction ajax affiche déjà un message d'erreur
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
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
43 <?php if(isset($_POST['userLat'],$_POST['userLong'])){ try{ $bdd = new PDO('mysql:host=localhost;port=3308;dbname=mabdd', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); } catch (Exception $e) { $reponse["ErreurConnectDatabase"]=$e->getMessage(); } $reponse=[]; $chaine=[]; $req = 'SELECT * FROM coordonnees_geographiques WHERE ABS(:userLong - Longitude) BETWEEN 0 AND 500 AND ABS(:userLat - Latitude) BETWEEN 0 AND 500 ORDER BY ID DESC'; $prepared=$bdd->prepare($req); $prepared->execute([":userLong"=>$_POST["userLong"],":userLat"=>$_POST["userLat"]]); while($d=$prepared->fetch(PDO::FETCH_ASSOC)){ // $reponse["annonces"][]=["id_annonce"=>$d["ID"],"image_uploaded"=>$d["photos"]]; $chaine = explode('&',$d["photos"]);//en BDD, les chemins vers des photos sont des chaines de caracteres séparées par le symbole '&' $tailleChaine = strlen($chaine); $reponse["annonces"][]="<div class='post'><div class='profil-pic'></div><div class='content'>".$d["titre"]." #".$d["ID"]."<div style='display:flex;'> <p style='width:100px;height:50px;'>".$d["photos"]."</p><p><img src='".$d["miniatures_photos"]."' alt='' ></p></div></div></div>"; } }else{ $reponse[]= "Les variables n'existent pas"; } echo json_encode($reponse); ?>
Le code jQuery:
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 $.ajax({ type: 'POST', dataType: 'json', url: 'page-intermediaire-de-traitement.php', data: { userLat : userLat, userLong : userLong }, /* success:function(data){ $.each(data.annonces,function(index,annonce){ $("#wrapper").append("<div class='post'><div class='profil-pic'></div><div class='content'>#"+annonce.id_annonce+"</div>"); }); }*/ success:function(data){ $.each(data.annonces,function(index,annonce){ $("#wrapper").append(annonce); }); } , error:function(err){ alert('Erreur ajax :',err.responseText); console.log(annonce); } });
Merci d'avance pour votre aide
Bonjour/Bonsoir Toufik83,
Désolé de déterrer ce post, mais je rencontre un souci entre le communication de mes codes PHP et Ajax: Vous disiez de ne pas faire d echo ou de print_r dans le code PHP qui envoyait les informations à l'appel Ajax. Mais je n'ai pas pris la peine de vous demander pourquoi ? Du coup, je me retrouve face à un problème similaire. Je dois à tout faire utiliser la fonction explode() dans ce code php, mais son utilisation entraine un message d'erreur Ajax, je ne sais pas quoi faire.
Mon code PHP:
Je comptais faire une bouche par la suite, pour récupérer chaque chemin, mais la fonction ajax affiche déjà un message d'erreur
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
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
43 <?php if(isset($_POST['userLat'],$_POST['userLong'])){ try{ $bdd = new PDO('mysql:host=localhost;port=3308;dbname=mabdd', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); } catch (Exception $e) { $reponse["ErreurConnectDatabase"]=$e->getMessage(); } $reponse=[]; $chaine=[]; $req = 'SELECT * FROM coordonnees_geographiques WHERE ABS(:userLong - Longitude) BETWEEN 0 AND 500 AND ABS(:userLat - Latitude) BETWEEN 0 AND 500 ORDER BY ID DESC'; $prepared=$bdd->prepare($req); $prepared->execute([":userLong"=>$_POST["userLong"],":userLat"=>$_POST["userLat"]]); while($d=$prepared->fetch(PDO::FETCH_ASSOC)){ // $reponse["annonces"][]=["id_annonce"=>$d["ID"],"image_uploaded"=>$d["photos"]]; $chaine = explode('&',$d["photos"]);//en BDD, les chemins vers des photos sont des chaines de caracteres séparées par le symbole '&' $tailleChaine = strlen($chaine); $reponse["annonces"][]="<div class='post'><div class='profil-pic'></div><div class='content'>".$d["titre"]." #".$d["ID"]."<div style='display:flex;'> <p style='width:100px;height:50px;'>".$d["photos"]."</p><p><img src='".$d["miniatures_photos"]."' alt='' ></p></div></div></div>"; } }else{ $reponse[]= "Les variables n'existent pas"; } echo json_encode($reponse); ?>
Le code jQuery:
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 $.ajax({ type: 'POST', dataType: 'json', url: 'page-intermediaire-de-traitement.php', data: { userLat : userLat, userLong : userLong }, /* success:function(data){ $.each(data.annonces,function(index,annonce){ $("#wrapper").append("<div class='post'><div class='profil-pic'></div><div class='content'>#"+annonce.id_annonce+"</div>"); }); }*/ success:function(data){ $.each(data.annonces,function(index,annonce){ $("#wrapper").append(annonce); }); } , error:function(err){ alert('Erreur ajax :',err.responseText); console.log(annonce); } });
Merci d'avance pour votre aide
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager