IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Récupérer le contenu d'un tableau php en javascript [AJAX]


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 26
    Points : 17
    Points
    17
    Par défaut Récupérer le contenu d'un tableau php en javascript
    Bonjour,
    Je souhaiterais récupérer le contenu d'un tableau issu d'un fichier structures.php depuis un fichier index.js. On m'a dit que je devais passer par une requête ajax et c'est ce que j'ai fait mais lorsque je souhaite afficher le contenu du tableau récupérer dans la console, rien ne se passe.

    Voici le contenu de structures.php qui va récupérer le noms des db d'un serveur et les stocker dans un array. A prioris tout va bien de ce coté la car si je fait echo $list le tableau encodé en json s'affiche bien

    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
    <?php
        $db_username = 'root';
        $db_password = '';
        $db_host     = 'localhost';
        $con = mysqli_connect($db_host, $db_username, $db_password) or die('could not connect to database');
        $names = array();
        $valeur=0;
        $result = mysqli_query($con,"SHOW DATABASES"); 
    while ($row = mysqli_fetch_array($result)) {
        if($row[0]!="information_schema" && $row[0]!="test" && $row[0]!="mysql" && $row[0]!="performance_schema"){
        $names[$valeur]=$row[0];
        $valeur=$valeur+1;
        }
    }
    $list=json_encode($names);
    mysqli_close($con);
    ?>

    Voici maintenant le contenu de index.js qui semble ne pas fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $(document).ready(function(){
    $.ajax({
        type : 'POST',
        url : 'structures.php',
        dataType : 'json',
        success : function(data){
     
                   var json_data = JSON.parse(data);
                    console.log(json_data);
     
        }
    });
    });
    Svp aidez moi, je commence a desesperer

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- il faut afficher dans le fichier PHP ce que tu veux récupérer :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo json_encode($names);

    2-
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        $names[$valeur]=$row[0];
        $valeur=$valeur+1;
    On n'a pas besoin de $valeur. Avec des crochets seuls [], l'incrémentation est automatique :
    Dernière modification par Invité ; 06/02/2020 à 16h46.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par jreaux62
    1- il faut afficher dans le fichier PHP ce que tu veux récupérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo json_encode($names);
    Merci pour ta réponse, un petit probleme subsiste, si je ne souhaite pas afficher le array dans le .php commment je peux faire pour cacher le echo du tableau ?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    lorsque l'on déclare un datatype:"json" le retour est traité et retourne un objet JSON donc inutile de faire un JSON.parse.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dataType : 'json',
    success : function(data){
        console.log(data);
    Citation Envoyé par la doc
    "json": Evaluates the response as JSON and returns a JavaScript object.

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    tu es obligé de faire un echo cote page de traitement php car c'est la réponse que recevra ton ajax ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Et donc je peux pas du tout caché le tableau lors de l'affichage de la page web principale (le fichier .php est appelé depuis une page web index.php) ?

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Si la page de traitement appelée par l'ajax est la même que la page appelante il faut faire un test pour savoir si tu est en mode affichage principal ou en mode traitement ajax

    comme ton ajax est en type post, tu peux tester si tu reçois du post ...
    voire une variable spécifique du post ...
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If (isset($_POST['mavarajax']) ) {
    // ici mode traitement
     }
    else {
    // ici affichage principal 
    }

    Sinon tu peux tester si la requete est une requete ajax
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) 
       && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') 
      {
        /* ici tu est en mode traitement*/
      }

    Une autre possibilité plus simple est d'avoir une page de traitement séparée ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] Récupérer mon tableau PHP en JavaScript
    Par yohann26 dans le forum Langage
    Réponses: 7
    Dernier message: 21/11/2011, 18h21
  2. Réponses: 8
    Dernier message: 21/12/2007, 16h42
  3. Réponses: 2
    Dernier message: 04/06/2007, 13h57
  4. Récupérer le contenu d'une page PHP
    Par Pragmateek dans le forum Réseau
    Réponses: 37
    Dernier message: 28/05/2006, 22h00
  5. [Tableaux] afficher le contenu d'un tableau php
    Par moons dans le forum Langage
    Réponses: 9
    Dernier message: 08/02/2006, 15h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo