Bonjour mon problème est le suivant alors que je fait une requete ajax qui va récupérer des information ( avec php et mysql ) sur ma base de donnée c'elle ci ne me retourne rien alors que ce que je fait me semble correcte
voici le coter JS ( jquery)

    $.post('ajax/fiche_eleves.php',{
        action: 'test',
        ID: id
    },function (data) {
        console.log(data);
    },"json");

puis le coter PHP

$req = $bdd->query(" SELECT * FROM test1 WHERE INE = '000000000h' ");
if ( $data1 = $req->fetch() ) {

    $req = $bdd->query(" SELECT * FROM test2 WHERE INE = '000000000h'");
    if ( $data2 = $req->fetch() ) {

        $req = $bdd->query(" SELECT * FROM test3 WHERE INE = '000000000h' ");
        if ( $data3 = $req->fetch() ) {

        $req = $bdd->query(" SELECT * FROM test4 WHERE INE = '000000000h' ");
        $data4 = $req->fetch();
        }       
    }   
}

echo json_encode(array($data1,$data2,$data3,$data4));

Merci d'avance de m'éclairer car je ne voie pas ou j'ai pu faire une erreur ( je précise que quand je fait sur le page PHP en modifiant mes variable pour plus avori de POST le tableaux de echo json_encode s'affiche sans aucun soucis )

13 réponses


Pominus
Auteur
Réponse acceptée

Voila j'ai trouver donc enfaite il faut que je transforme le résulta de ma requête avant de l'envoyé comme ceci

    $req = $bdd->query(" SELECT * FROM eleves WHERE INE = '0000000h' ");
        if ( $data1 = $req->fetch() ) {
            $d[1] = $data1['Sexe'];         
            $d[2] = $data1['Pays_Nat'];
            $d[3] = $data1['Nom'];
            $d[4] = $data1['Prenom'];
            $d[5] = $data1['Date_naissance'];
            $d[6] = $data1['Date_entree'];
            $d[7] = $data1['Date_sortie'];
            $d[8] = $data1['Ville_Naiss_etranger'];
            $d[9] = $data1['Commune_Naiss'];
            $d[10] = $data1['Pays_Naiss'];
            $d[11] = $data1['Motif Sortie'];
            $d[12] = $data1['Code_Structure'];
            $d[13] = $data1['INE'];

voila si ça peut aidé une personne ^^

Khalysto
Réponse acceptée

Pour comprendre rapidement, il fallait que tu mettes en forme ta réponse de BD dans un grand array, c'est ça?
Ça peut toujours servir :)

deja pour la recupération des donné via une base de donné, je pense que le .get est plus approprié.Ensuite je crois qu'il faut que tu sorte la console et dans l'onglet ressource puis excute l'action qui est censé appelé ton url pour voir s'il est bien appelé et qu'il n'est pas rouge .Troisiement je pense que tu devrait voir dans l'url appelé pour vérifier dans response afin de voir ce qu'il donne comme result

Pominus
Auteur

Je viens de regarder comme tu m'a dit le POST s'envoie bien avec les informations requise et normalement. Il s'affiche vert mais il n'y a aucun retour
EDIT : je viens de tester avec le .get même soucis

Pominus
Auteur

Bha juste que je n'est aucun retour de Php donc rien dans la console sinon oui elle s'execute correctement avec les outils de dev il me signial aucune erreur c'est bien pour sa que je m'intéroge ^^'

Pominus
Auteur

J'utilise wamp serveur et je fait déja d'autre requête ajax qui fonctionne parfaitement ^^' donc je ne pense pas que cela vienne du serveur

Pour déboguer la partie php, tapes directement "ajax/fiche_eleves.php" dans la barre d'adresse, tu verras les 'die' et 'echo'
Sinon as -tu ouvert une connexion pour ta base de données ?

Pominus
Auteur

Je continue de mon côté et vous tiens au courant si je trouve une solution

Pominus
Auteur

alors Huggy oui je tape déja plusieur avant sur cette basse de donnée et j'utilise la même connection a chaque fois puis j ai déja fait cette manipe je voie tout mon tableau sur la page comme résultas (ce que un echo json_encode doit donner ) ^^

montre nous les captures

Je vais peut-être dire de la grosse bullshit, mais est-ce que tu catch bien tes erreurs PDO?
Parce que c'es quand même étrange d'avoir 0 retour...

Pominus
Auteur

Ha ! voila le problème est différent après avoir chercher un peu plus j'ai vue qu'enfaite il y a bien la réponse mais impossible de l'afficher !

    header('Content-Type: text/json');  

avant l'envoi du json, ça peut aider.