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

PHP & Base de données Discussion :

Afficher un champ de bdd dans une classe JS avec PHP


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 36
    Points : 32
    Points
    32
    Par défaut Afficher un champ de bdd dans une classe JS avec PHP
    Bonjour,

    J'ai une classe Slider.js qui est comme son nom l'indique un slider, les images y sont afficher comme ceci :

    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
     
     
    afficherSlide() {
            this.slide[0] = {
                'images': 'assets/img/5.jpg', 
            }
            this.slide[1] = {
                'images': 'assets/img/7.jpg',
            }
            this.slide[2] = {
                'images': 'assets/img/1.jpg',
            }
            this.slide[3] = {
                'images': 'assets/img/4.jpg',
            }
        }
    J'aimerais mettre le path de mes images dans ma bdd et donc afficher le champ de ma bdd avec PHP afin de pouvoir modifier mes images dans le dashboard de mon site.
    Auriez vous une solution pour moi ? Car je suis un peu perdu ! ^^

    Merci d'avance !

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    où utilisez vous ce code actuellement ?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 36
    Points : 32
    Points
    32
    Par défaut
    Ce code est dans une classe javascript, et le tout est dans un systeme MVC

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 36
    Points : 32
    Points
    32
    Par défaut
    J'ai pour l'instant fait quelque chose comme ça :

    mon model :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     
    public function getSliderImage1()
        {
            $db = $this->dbConnect();
            $req = $db->prepare('SELECT id, chemin FROM slider WHERE id = 1');
            $req->execute();
     
            return $req;
        }
     
        public function getSliderImage2()
        {
            $db = $this->dbConnect();
            $req = $db->prepare('SELECT id, chemin FROM slider WHERE id = 2');
            $req->execute();
     
            return $req;
        }
     
        public function getSliderImage3()
        {
            $db = $this->dbConnect();
            $req = $db->prepare('SELECT id, chemin FROM slider WHERE id = 3');
            $req->execute();
     
            return $req;
        }
     
        public function getSliderImage4()
        {
            $db = $this->dbConnect();
            $req = $db->prepare('SELECT id, chemin FROM slider WHERE id = 4');
            $req->execute();
     
            return $req;
        }
    mon controller :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public function showHome()
        {
            $textManager = new P5OC\site\Model\TextManager();
            $slide1 = $textManager->getSliderImage1();
            $slide2 = $textManager->getSliderImage2();
            $slide3 = $textManager->getSliderImage3();
            $slide4 = $textManager->getSliderImage4();
     
            require(VIEW.'home.php');
        }
    et dans mon fichier js :

    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
     
     
        afficherSlide() {
            this.slide[0] = {
                'images': "<?= $slide1['chemin'] ?>", 
            }
            this.slide[1] = {
                'images': "<?= $slide2['chemin'] ?>",
            }
            this.slide[2] = {
                'images': "<?= $slide3['chemin'] ?>",
            }
            this.slide[3] = {
                'images': "<?= $slide4['chemin'] ?>",
            }
        }
    Et donc ça ne marche pas, c'est logique mais je suis perdu ^^

  5. #5
    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 : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bon déjà, ne fais pas 5 fonctions pour les 5 images. Imagine un peu que tu en es 275 à afficher Ensuite, quand tu exécutes une requête, il faut récupérer ce qui t'intéresse dedans et uniquement ce qui t'intéresse (en l’occurrence le chemin)

    Par exemple, pour récupérer le chemin à partir d'un id :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public function getSliderImage($id)
    {
        $db = $this->dbConnect();
        $req = $db->prepare('SELECT chemin FROM slider WHERE id = :id');
        $req->execute([':id' => $id]);
        $res = $req->fetchColumn();
     
        return $res;
    }
    à utiliser par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $slide1 = $textManager->getSliderImage(1);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    this.slide[0] = {
                'images': "<?= $slide1 ?>", 
            }
    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]

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 36
    Points : 32
    Points
    32
    Par défaut
    Merci pour votre réponse, ça m'a aider à y voir plus clair !

    Par contre mes images ne s'affichent toujours pas sur ma page et les erreurs qui me sont retournés dans ma console sont comme ça :

    http://localhost/P5OC/site/%3C?=%20$slide2%20?%3E

    au lieu d'être le path de ma bdd...

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

    le plus simple (et pratique) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    // On récupère TOUTES les images
    public function getAllSliderImages()
        {
            $db = $this->dbConnect();
            $req = $db->prepare("SELECT chemin FROM slider");
            $req->execute();
    		$rowAll = $req->fetchAll(PDO::FETCH_OBJ);
     
            return $rowAll;
        }
    Dans le script JS :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script>
    afficherSlide() {
    <?php
    	$images = getAllSliderImages();
    	$ii = 0;
     	foreach($images as $image )
    	{
    		echo "	this.slide[".$ii."] = { 'images': '".$image->chemin."', }"."\n";
    		$ii++;
    	}
    ?>
    }

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 36
    Points : 32
    Points
    32
    Par défaut
    J'ai finalement changer mon slider afin que mes images ne soit plus déclarer dans le script JS mais dans l'html et du coup plus de problème de variable php vers mon fichier JS et tout fonctionne comme je le voulais.
    Merci tout de même pour votre réponse et de vous êtes penché sur mon problème !

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

Discussions similaires

  1. [9.4] Afficher les valeurs null (0) dans une requête stats avec GROUP BY
    Par limix429 dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/04/2016, 09h23
  2. [2.x] récupération d'objet de la bdd dans une classe de formulaire
    Par lofomboo dans le forum Symfony
    Réponses: 1
    Dernier message: 07/01/2014, 12h59
  3. [PHP 5.3] Instance de BDD dans une classe qui cause une exception
    Par lamouche42 dans le forum Langage
    Réponses: 5
    Dernier message: 29/10/2011, 12h13
  4. [REQUETE]Afficher un champ "case à cocher" dans une requête SQL-Access
    Par Amael ROCHE dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 03/04/2007, 11h07

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