J'essaye d'afficher 3 adresses qui ont la "ville" Paris mais je n'arrive pas, par contre j'ai une adresse qui a le nom "ville" strasbourg elle s'affiche correctement
Faut-il modifier le code javascript ou bien celui du PHP?
Bonsoir pour la partie php htmlspecialchars se place a l'affichage non a la récupération de la donnée.
Ensuite je dirai que deja dans le php il a une erreur le
echo json_encode n'est pas bien place car il est fait dans le foreach il faut le faire en dehors donc je vous conseille de creer un array et via array_push ajouter le tableau post a ce nouveau tableau et donc a la fin du foreach faire un echo json encode de ce nouveau tableau suivi d'un die histoire d'etre sûr.
ensuite il une erreur evidente sur post
vous faites des affectations sur le tableau post dans le foreach et ce que vous avez affecter son des valeurs d'attributs de l'objet post
Soit post est un objet soit c'est un tableau.
En conclusion je pense qu'il faut réélement revoir la partie php et la tester sans ajax c'est a dire provoquer vous meme la condition puis voir ce que donne le echo json_encode final
sinon niveau ajax je ne pense pas que la partie ajax soit fausse a une chose pres, quand est ce que vous envoyez les $_POST que vous récupérez en php ? et data.ville ne sera sûrement pas ce que vous attendez
Bonsoir pour la partie php htmlspecialchars se place a l'affichage non a la récupération de la donnée.
Ensuite je dirai que deja dans le php il a une erreur le
echo json_encode n'est pas bien place car il est fait dans le foreach il faut le faire en dehors donc je vous conseille de creer un array et via array_push ajouter le tableau post a ce nouveau tableau et donc a la fin du foreach faire un echo json encode de ce nouveau tableau suivi d'un die histoire d'etre sûr.
ensuite il une erreur evidente sur post
vous faites des affectations sur le tableau post dans le foreach et ce que vous avez affecter son des valeurs d'attributs de l'objet post
Soit post est un objet soit c'est un tableau.
En conclusion je pense qu'il faut réélement revoir la partie php et la tester sans ajax c'est a dire provoquer vous meme la condition puis voir ce que donne le echo json_encode final
sinon niveau ajax je ne pense pas que la partie ajax soit fausse a une chose pres, quand est ce que vous envoyez les $_POST que vous récupérez en php ? et data.ville ne sera sûrement pas ce que vous attendez
- Edité par zvheer il y a environ 12 heures
Merci zvheer
Ton explication est bien précise, je suis débutant donc tous les conseils m'aident beaucoup pour mon apprentissage
je me suis procédé de cette façon, sauf que je récupère maintenant la 1ère adresse de la ville de "Paris", les 2 autres adresses ne s'affichent pas
if((isset($_POST['Ville']))){
$ville = ($_POST['Ville']);
$CodeP = ($_POST['FindCodePostal']);
$query = $bdd->prepare('SELECT * FROM local WHERE Ville= ? or CodePostal = ?');
$query->execute(array($ville, $CodeP));
$Ville = $query->rowCount();
if($Ville >0){
$posts = $query->fetchAll(PDO::FETCH_OBJ);
$array = array();
foreach($posts as $post) {
$array[] =
$post['GoId']=$post->id;
$post['GoNom']=$post->Nom;
$post['GoAdresse']=$post->Adresse;
$post['GoCP']=$post->CodePostal;
$post['GoVille']=$post->Ville;
}
echo json_encode($post);
}
}
C'est pour cela que j'ai demande d'utiliser array_push qui est une fonction qui ajoute des items dans un tableau, le premier paramètre est le tableau puis le reste des variables est a nombre variable, c'est a dire que vous pouvez ajouter autant d'items a la fois que vous le voulez ensuite.
ensuite a la fin vous faites un echo json_encode de $post et non de $array
donc meme ai vous aviez utiliser array_push ca ne sert a rien a la fin le json_encode doit se faire sur le nouveau array que voys remplirez dans le foreach.
Et je redis soit $post est un tableau soit $post est un objet ou alors faites un var_dump de $post dans le foreach que je puisse voir ce que c'est, peut etre que FETCH_OBJ le permet
C'est pour cela que j'ai demande d'utiliser array_push qui est une fonction qui ajoute des items dans un tableau, le premier paramètre est le tableau puis le reste des variables est a nombre variable, c'est a dire que vous pouvez ajouter autant d'items a la fois que vous le voulez ensuite.
ensuite a la fin vous faites un echo json_encode de $post et non de $array
donc meme ai vous aviez utiliser array_push ca ne sert a rien a la fin le json_encode doit se faire sur le nouveau array que voys remplirez dans le foreach.
Et je redis soit $post est un tableau soit $post est un objet ou alors faites un var_dump de $post dans le foreach que je puisse voir ce que c'est, peut etre que FETCH_OBJ le permet
- Edité par zvheer il y a 10 minutes
autrement, voici ce que j'obtiens dans réseau avec ajax si je met
ça ne serai pas $array qu'il faudrait mettre dans le json ?
c'est logique que tu es que la dernière ligne puisque tu prends $post
autre chose, la méthode rowCount ne s'utilise pas sur une requête SELECT comme tu pourras le lire dans la doc de cette dernière. Utilise plutôt fetchColumn
ça ne serai pas $array qu'il faudrait mettre dans le json ?
c'est logique que tu es que la dernière ligne puisque tu prends $post
autre chose, la méthode rowCount ne s'utilise pas sur une requête SELECT comme tu pourras le lire dans la doc de cette dernière. Utilise plutôt fetchColumn
Merci Aurélien pour ta réponse,
oui je suis sur la piste de modifier le ajax pour qu'il prend en compte tout le tableau
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Je ferme ce sujet. En cas de désaccord, me contacter par MP.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
yasakani no magatama
yasakani no magatama
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP
Pas d'aide concernant le code par MP, le forum est là pour ça :)