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

Langage PHP Discussion :

Ajout de valeurs dans un objet Array


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de botLIA
    Homme Profil pro
    Étudiant en Licence 3 CDA
    Inscrit en
    Juin 2016
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant en Licence 3 CDA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 45
    Par défaut Ajout de valeurs dans un objet Array
    Bonjour,

    J'ai fais un script en JavaScript en utilisant du JQuery et Ajax pour récupérer un objet JSON par du PHP.
    Dans le code PHP j'ai un petit problème :

    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
     
    <?php
    try{
        $bdd = new PDO("mysql:host=localhost;dbname=##", "####", "####");
    }catch(Exeption $e){
        die('Erreur : '.$e->getMessage());
    }
    $i = 1;
    $reponse = $bdd->query("SELECT * FROM presentationprincipal");
    $donnees = $reponse->fetch();
    $reponse->closeCursor();
     
    $obj = (object)array();
    $obj->titre = $donnees['titrePresentation'];
    $obj->text = $donnees['TextPresentation'];
     
    $json = json_encode($obj);
     
    echo $json;
     
    ?>
    Dans cette partie là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $obj->titre = $donnees['titrePresentation'];
    $obj->texte = $donnees['TextPresentation'];
    Quand je rentre directement une chaîne de caractère, cela fonctionne dans l'affichage du JSON, sauf quand je veut faire comme ci-dessus, il ne m'affiche rien sur la page web
    J'ai rechercher sur pas mal de forum mais j'ai pas trouvé la solution à mon problème,
    Auriez-vous une idée ?

    Cordialement

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Bonjour
    ce n'est pas obligé de caster en object

    il est où votre script js ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $obj = array();
    $obj['titre'] = $donnees['titrePresentation'];
    $obj['text'] = $donnees['TextPresentation'];
     
    echo json_encode($obj);

  4. #4
    Membre averti Avatar de botLIA
    Homme Profil pro
    Étudiant en Licence 3 CDA
    Inscrit en
    Juin 2016
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant en Licence 3 CDA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 45
    Par défaut
    Mon script JS est pas très important je pense parce que dans un premier temps j'exécute la page PHP directement dans mon navigateur,
    mais si tu veut je peut le fournir, c'est juste un script test pour voir comment fonctionne AJAX :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $(document).ready(function(){
        $.get("bdd/presPage.php", function(data){
            console.log(data);
        }, "json");
    });

  5. #5
    Membre averti Avatar de botLIA
    Homme Profil pro
    Étudiant en Licence 3 CDA
    Inscrit en
    Juin 2016
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant en Licence 3 CDA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 45
    Par défaut
    J'ai fais comme tu m'a dit Jreaux62, mais il ne m'affiche rien dans le navigateur quand j'execute la page PHP...

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

    console.log n'affiche effectivement rien dans la page, puisqu'il affiche dans la console !

    Un exemple pour afficher dans la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $(document).ready(function(){
        $.get("bdd/presPage.php", function(data){
            $('#result').html( data.titre + ' - ' + data.text );
        }, "json");
    });
    Avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="result"></div>

  7. #7
    Membre averti Avatar de botLIA
    Homme Profil pro
    Étudiant en Licence 3 CDA
    Inscrit en
    Juin 2016
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant en Licence 3 CDA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 45
    Par défaut
    console.log n'affiche effectivement rien dans la page, puisqu'il affiche dans la console !
    Oui autant pour moi j'ai écris trop vite

    J'ai fais comme tu m'a dit mais toujours rien
    Pourtant quand par exemple dans le code PHP je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo($obj['titre']);
    Il m'affiche bien la valeur donc c'est qu'il récupère bien les valeurs dans la base.

    Pour la petite explication de ce que je souhaiterais faire,

    j'ai déjà fais le site mais entièrement en PHP, pour accompagné les cours et faire mon site pro, il fonctionne par "bloc" :
    j'ai des données dans ma base et je ne sais pas à l'avance combien j'en ai par exemple si j'ai 3 projet sur mon site je marque pas 3 dans le code sinon je devrais modifié le code à chaque fois que j'en rajoute 1, ce n'est pas le but, c'est qu'il travail tout seul et qu'il s'adapte au données qu'il a, récupère les données, créer les blocs et les écris dans le corps de ma page, car je n'ai qu'une seule page et c'est le corps qui change pour chaque une d'elle.

    Il marche à merveille en PHP et je me suis dit "bon le PHP c'est cool mais j'ai envie de voir les aspects du Javascript avec JQUERY et AJAX", du coup je recode le site en Javascript en modifiant l'affichage des informations pour que se soit un peut plus jolie et ergonomique.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Quand tu exécutes le fichier bdd/presPage.php directement, ça donne quoi ?

  9. #9
    Membre averti Avatar de botLIA
    Homme Profil pro
    Étudiant en Licence 3 CDA
    Inscrit en
    Juin 2016
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant en Licence 3 CDA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 45
    Par défaut
    Avec ce code :
    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
     
    <?php
    try{
        $bdd = new PDO("mysql:host=localhost;dbname=####", "####", "####");
    }catch(Exeption $e){
        die('Erreur : '.$e->getMessage());
    }
    $i = 1;
    $reponse = $bdd->query("SELECT * FROM presentationprincipal");
    $donnees = $reponse->fetch();
    $reponse->closeCursor();
     
    $obj = array();
    $obj['titre'] = $donnees['titrePresentation'];
    $obj['texte'] = $donnees['TextPresentation'];
     
    echo json_encode($obj);
     
    ?>
    Il n'affiche rien et pas d'erreurs dans la console non plus :
    Nom : 1.PNG
Affichages : 90
Taille : 14,7 Ko

  10. #10
    Invité
    Invité(e)
    Par défaut
    Alors il y a une erreur.

    Et en mettant uniquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $obj = array();
    $obj['titre'] = 'Titre test';
    $obj['texte'] = 'Text essai';
     
    echo json_encode($obj);
    ?

  11. #11
    Membre averti Avatar de botLIA
    Homme Profil pro
    Étudiant en Licence 3 CDA
    Inscrit en
    Juin 2016
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant en Licence 3 CDA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 45
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $obj = array();
    $obj['titre'] = 'Titre test';
    $obj['texte'] = 'Text essai';
     
    echo json_encode($obj);
    Avec ce code, ça fonctionne coté JS :
    Nom : 1.PNG
Affichages : 72
Taille : 1 017 octets
    Nom : 2.PNG
Affichages : 76
Taille : 6,0 Ko

    Et du coté PHP :
    Nom : 3.PNG
Affichages : 77
Taille : 3,9 Ko

    étrange...

  12. #12
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je parie sur une erreur sur la requête couplée à un non-affichage des erreurs (configuration de base de PDO ) Essaye d'activer les exceptions PDO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $bdd = new PDO("mysql:host=localhost;dbname=####", "####", "####", [
                PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
                PDO::ATTR_EMULATE_PREPARES   => false
                ]);
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  13. #13
    Membre averti Avatar de botLIA
    Homme Profil pro
    Étudiant en Licence 3 CDA
    Inscrit en
    Juin 2016
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant en Licence 3 CDA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 45
    Par défaut
    Toujours rien d'affiché ni sur la page web ni sur la console en ayant activé les exceptions PDO

    Ca doit être PHP ou JS qui m'aime pas

    Je vous décris mon environnement quand même ça peut jouer

    Au départ je suis sur linux (OS principal utilisé tout le temps)sur un serveur Apache2 avec MariaDb et un serveur NodeJS mais mon service apache2 est "cassé" il faut que je le reconf je pense mais j'ai pas le temps de m'y mettre pour l'instant comme j'ai pas mal de taf en entreprise.
    Comme sur mon pc je suis en dual boot avec un OS "secondaire" Windows 10 utilisé très peut juste pour visual studio pour les cours, j'ai mis dessus Wamp pour que se soit rapide sans faire plusieurs install ni conf qui prennent trop de temps et en plus il prend en compte PHP et JS du coup c'est cool pour dépanné

  14. #14
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je suppose que tu as bien des données dans cette table et que la requête fonctionne si tu l'appelles directement sur la base (par PhpMyAdmin par exemple)
    Tu peux essayer un var_dump($donnees) pour vérifier ce que la requête te renvoie.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  15. #15
    Membre averti Avatar de botLIA
    Homme Profil pro
    Étudiant en Licence 3 CDA
    Inscrit en
    Juin 2016
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant en Licence 3 CDA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 45
    Par défaut
    Oui j'ai des données quand j'ai mis en place cette solution de secours j'ai fait un export de la base,
    Voila le résultat :
    Nom : 4.PNG
Affichages : 76
Taille : 30,8 Ko

  16. #16
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je ne vois vraiment pas
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  17. #17
    Membre averti Avatar de botLIA
    Homme Profil pro
    Étudiant en Licence 3 CDA
    Inscrit en
    Juin 2016
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant en Licence 3 CDA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 45
    Par défaut
    Moi non plus

    Mais du coup je voulais faire comme ça comme je ne sais pas combien de données je vais recevoir de ma requête, si tu as un autre moyen pour que mon AJAX récupère le résultat de ma requête en faisant en sorte que tout ne soit pas mis dans une chaine parce que pour différencié quel titre est avec quel texte, ce sera compliqué, mais par une autre manière que le json_encode() qui chez moi ne fonctionne pas (je verrais plus tard et indiquerais la réponse si j'ai trouvé) ?

    Merci quand même

  18. #18
    Invité
    Invité(e)
    Par défaut
    Dans le fichier bdd/presPage.php :
    Ce n'est pourtant pas difficile de faire une requête basique, et d'afficher un résultat.

    Si ??

  19. #19
    Membre averti Avatar de botLIA
    Homme Profil pro
    Étudiant en Licence 3 CDA
    Inscrit en
    Juin 2016
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant en Licence 3 CDA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 45
    Par défaut
    Quand je var_dump le résultat de la requête ça fonctionne mais quand j'echo ou var_dump() le json_encode() j'ai rien

  20. #20
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Fondamentalement, si le problème vient du json_encode et que tu sais que tu n'auras qu'un seul niveau de tableau avec uniquement des chaines, tu peux réécrire une fonction toi-même.
    Quelque chose dans ce genre (non testé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function pseudo_json_encode($k, $v) {
        return '"'.$k.'" :"'.$v.'"';
    }
    echo '{'.implode(', ',array_map($jsonEncodeTabLvl1, array_keys($obj), $obj)).'}';
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. VBA : ajouter une valeur dans une liste déroulante
    Par remi59 dans le forum Access
    Réponses: 4
    Dernier message: 22/12/2005, 10h01
  2. ajouter une valeur dans une combobox
    Par decour dans le forum Access
    Réponses: 1
    Dernier message: 17/10/2005, 10h58
  3. Ajouter un valeur dans une liste modifiable
    Par ancylia dans le forum Access
    Réponses: 1
    Dernier message: 22/09/2005, 12h50
  4. problème pour récupérer une valeur dans ma bd (débutante)
    Par auryn111 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/08/2005, 17h49
  5. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41

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