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 :

Réutilisation d'un include ne fonctionne pas


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 78
    Points : 50
    Points
    50
    Par défaut Réutilisation d'un include ne fonctionne pas
    Salut,

    J'explique mon problème , j'ai une page avec plusieurs boutons , en fonction du bouton sur lequel je clic le contenu d'une div change. J'utilise ce code coté javascript pour changer le contenu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste.innerHTML ="<?php include('liste_parties_mode_libre.php');?>";
    Et le contenu du fichier php en question se connecte à ma BDD , et affiche dans un tableau son contenu.

    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
    <?php
    	try{
    		$bdd = new PDO("mysql:host=$host.;dbname=$bdd_name", "$username", "$password");
    	}catch(Exception $e){
    	        die('Erreur : '.$e->getMessage());
    	}
     
    	$reponse = $bdd->query('SELECT * FROM partieslibre');
     
    	echo '<div id=\"entete_parties_mode_libre\"><img src=\"res/site/entete_crampons.jpg\"/></div>';
    	echo '<div id=\"liste_parties_mode_libre\">';
    	echo '<table class=\"tableau-choix\">';
    	while ($donnees = $reponse->fetch()){  
      		echo '<tr><td class=\"nom_partie\">';
      		echo '<p>'.$donnees['nom_partie'].'</p>';
      		echo '</td><td class=\"nom_createur\">';
      		echo '<p>'.$donnees['nom_createur'].'</p>';
      		echo '</td><td class=\"nbr_joueurs\">';
      		echo '<p>'.$donnees['nbr_joueurs'].'/'.$donnees['nbr_joueurs_max'].'</p>';
      		echo '</td><td class=\"mdp_actif\">';
                    if($donnees['mdp_actif'] == 0) echo '<p>No</p>';
                    if($donnees['mdp_actif'] == 1) echo '<p>Yes</p>';
                    echo '</td>';
                    echo '</tr>';
          }    
          echo '</table>';
          echo '</div>';
    ?>
    Ce code fonctionne parfaitement et affiche dans la div le résultat souhaité.
    Jusque là aucun problème donc.
    Mais lorsque je clic sur un autre bouton "nouvelle entrée" , j'affiche dans cette div un formulaire permettant de rajouter une nouvelle entrée dans la table grâce à ce code javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste.innerHTML ="<?php include('creerPartieLibre.php');?>";
    Et c'est là que je bute : lorsque l'entrée à été ajouté , si je reclic sur le premier bouton pour réafficher le tableau du contenu de ma table (je rappel donc le "include('liste_parties_mode_libre.php');" ) , le tableau obtenu est identique à celui obtenu la première fois et il ne contient donc pas le dernière entrée ajouté dans la table. J'en conclu donc que la requête SQL dans le fichier php n'est même pas effectuée.

    Comment expliquer cela? Il me semblait que include pouvais rappeler plusieurs fois le même fichier. Le problème vient de la page php qui se connecte à la bdd ?

    Pouvez-vous m'aider?

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    Et c'est là que je bute : lorsque l'entrée à été ajouté , si je reclic sur le premier bouton pour réafficher le tableau du contenu de ma table (je rappel donc le "include('liste_parties_mode_libre.php');" ) ,
    Non en fait quand tu cliques, si tu ne recharges pas la page, le contenu de liste.innerHTML est toujours le meme.

    En effet, au chargement de la page , l'include a été exécuté (sur le serveur) avant l'affichage et il a produit le résultat de ta page liste_parties_mode_libre.php

    Si tu ne veux pas recharger la page, il faut que tu utilises AJAX et XmlHttpRequest

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 78
    Points : 50
    Points
    50
    Par défaut
    Merci ça fonctionne parfaitement.

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

Discussions similaires

  1. Include php fonctionne pas
    Par applinew devellop dans le forum Langage
    Réponses: 5
    Dernier message: 27/01/2015, 14h56
  2. [PHP 5.0] fonction include qui ne fonctionne pas
    Par mds084 dans le forum Langage
    Réponses: 7
    Dernier message: 19/11/2011, 02h11
  3. Creation Component : Include ne fonctionne pas
    Par Croaker dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 30/03/2011, 17h29
  4. switch case, include : ne fonctionne pas
    Par FraK dans le forum Langage
    Réponses: 13
    Dernier message: 02/07/2008, 12h50
  5. [MySQL] include pour connexion à la base qui ne fonctionne pas
    Par TOSCAN dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/04/2008, 12h57

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