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 :

Remplir un tableau HTML dynamiquement


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2017
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2017
    Messages : 76
    Points : 41
    Points
    41
    Par défaut Remplir un tableau HTML dynamiquement
    Bonjour,

    J'ai crée une fonction pour récupérer les données d'une table de ma DB.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public function getLRUlist() {
                $cnx = new DataBaseManager();
                $result = $cnx->query("SELECT `ID_LRU` FROM `lru` WHERE `LRU` ='" . $LRU . "'");
               // var_dump($result);
    			echo "<table>";
    			while ($data = $result->fetch()) {
                    echo "<tr><td>".($data['LRU'])."</td></tr>";
                }
    			echo "</table>";
     
        }
    Je ne comprends pas comment changer le code HTML pour qu'il prends en compte les données. En fait j'ai appelé la fonction dans le HTML mais il ne prends en compte les modifications.
    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
     <div class="box-body">
                       <div id="idArticle" style="min-width: 310px; height: 550px; margin: 0 auto; overflow:auto"> 
     
    				   <table class="table">
    					<thead>
    					  <tr>
    						<th>Article</th>
    						<th>{{widget['0']|raw}}</th>
    						<th>{{widget['1']|raw}}</th>
    						<th>Current Trend</th>
    					  </tr>
    					</thead>
    					<tbody>
     
    					  <tr class="danger">
    						<td>{{widget['17']|raw}}</td>		
     
    					  </tr>
    Q'est-ce-que je dois changer à votre avis s'il vous plait pour que je puisse afficher mes données dans le tableau ?
    Merci.

  2. #2
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Salut, c'est bien le template twig ? normalement tu dois passer ta variable à ta vue via ton contrôleur ou quelque chose comme ça
    Comment fais-tu pour appeler le fichier html en question ?
    Ta méthode getLRUlist devait se limiter à return $result; donc virer echo "<table>" et compagnie.
    D'où vient $LRU dans la requête ?

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2017
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2017
    Messages : 76
    Points : 41
    Points
    41
    Par défaut
    Oui j'utilise une template Twig.

    J'appelle le fichier HTML.twig dans le routes.php.

    Lorsque j'ajoute n'importe quel return il m'affiche cette erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Catchable Fatal Error: Object of class PDOStatement could not be converted to string
    Je vire que les echo<table> et echo</table> ?

    Pour le LRU peut-être je ne te comprends pas mieux, mais il est dans une table SQL.

  4. #4
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    POur le LRU je parlais de ta requête "SELECT `ID_LRU` FROM `lru` WHERE `LRU` ='" . $LRU . "'"; , je ne sais pas d'où ta variable $LRU sort.
    Maintenant je ne connais pas le fonctionnement exact de l'outil que tu utilises, mais peux-tu montrer le code qui appelle ta vue ?

  5. #5
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2017
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2017
    Messages : 76
    Points : 41
    Points
    41
    Par défaut
    Pour le LRU vient d'une autre classe, je l'ai instancié maintenant mais il ne l'accepte pas, voilà la modification de la fonction:
    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
     public function getLRUlist() {
                $cnx = new DataBaseManager();
    			 $article = new \.....\Parse\Article();
    			 $LRU=$article->getLRU();
     
                $result = $cnx->query("SELECT `ID_LRU` FROM `lru` WHERE `LRU` ='" . $LRU . "'");
               // var_dump($result);
    		echo "<table>";
    			while ($data = $result->fetch()) {
                    echo "<tr><td>".($data['LRU'])."</td></tr>";
                }
    			echo "</table>";
     
    			//return $result;
        }
    Et voilà l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: Missing argument 1 for Floose\Parse\Article::__construct(), called in ......
    Le scénario de ce truc là est:
    Dans le Customercontrolleur.php où j'ai crée cette fonction au dessus ainsi une autre fonction qui getWidgetData qui fait appelle à toutes les fonctions, j'accède à chaque fonction dans le fichier HTML.Twig par Widget.[indice].

    Dans le routes.php j'ai fait appel à la vue:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $app->get('/Customer/{id}', function($id) use ($app) {
        if ($app['security']->isGranted('ROLE_USER')) {
            $dash = new \........\DashSave();
            $widgetData = explode("/", $dash->getWidgetData());
            $bdm = new CustomerDAO();
            $customer = $bdm->getCustomerByID($id);
            $control = new Floose\Customers\CustomersController($customer);
            $widget = explode('#', $control->getWidgetData());
            return $app['twig']->render('CustomerData.html.twig', array('control' => $control, 'widget' => $widget, 'customer' => $customer, 'lastUpdate' => $widgetData));
        } else {
            return $app->redirect('/......../web/login');
        }
    });

  6. #6
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Warning: Missing argument 1 for Floose\Parse\Article::__construct(), called in ...... , à toi de voir la signature du constructeur de ta classe Floose\Parse\Article qui attend visiblement quelque chose en paramètre.
    Erreur de ma part, getLRUlist devait retourner $result->fetch() ou $result->fetchAll() (si tu attends plusieurs résultats) , c'est l'un ou l'autre qui doit être passé à la vue normalement.
    Pas trop compris l'histoire du widget, mais du peu est que getLRUlist n'est jamais appelé directement c'est ça? Désolé un peu flou chez moi

  7. #7
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2017
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2017
    Messages : 76
    Points : 41
    Points
    41
    Par défaut
    Merci pour l'info. que je dois ajouter les paramètres dans la fonction.
    Aussi j'ai changé ça: return $result->fetch(); il n'y a plus d'erreur.
    Pour l'appelle de la fonction si je l'ai appelé dans le Widget
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public function getWidgetData(){
            return $this->getOldDate().'#'.$this->getNewdate().'#'.$this->getOldArticle().'#'................................$this->getLRUList();
    Et dans le fichier HTML.Twig je l'appelle par indice. widget.
    <th>{{widget['17']|raw}}</th>Maintenant il me reste que comment je change mon code de HTML pour que j'affiche toute la liste des LRU

  8. #8
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    fait voir le constructeur de ta classe Floose\Parse\Article et ton widget, parce que désolé c'est encore flou chez moi cette affaire là.
    C'est une sorte de convention du framework que tu utilises, ou ça vient de toi et c'est plus facile ainsi ?
    Essaie de "dumper" ton widget dans ta vue , voir ici https://twig.sensiolabs.org/doc/2.x/functions/dump.html

    EDIT: je ne vois pas l'utilité de ta méthode getWidgetData, pourquoi pas simplement $control->getLRUlist() ?

Discussions similaires

  1. [AJAX] tableau HTML Dynamique
    Par llaffont dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/08/2008, 13h48
  2. Remplir un tableau généré dynamiquement
    Par cocosql dans le forum InfoPath
    Réponses: 34
    Dernier message: 04/06/2008, 09h53
  3. Créer un tableau html dynamiquement
    Par bdaboah dans le forum ASP
    Réponses: 8
    Dernier message: 07/02/2008, 10h17
  4. [Javascript] Connaître la hauteur d'un tableau HTML dynamique ?
    Par renaud26 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/04/2006, 18h35
  5. [Tableaux] Tableau HTML dynamique
    Par gunth dans le forum Langage
    Réponses: 2
    Dernier message: 14/12/2005, 17h59

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