Rafraichir le contenu d'une div

Fermé
anto2b Messages postés 119 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 18 décembre 2011 - Modifié par anto2b le 27/11/2011 à 17:39
gaelcr Messages postés 40 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 23 mai 2012 - 1 déc. 2011 à 19:13
Bonjour,

Bonjour à tous, je suis en train de créer un jeu de carte en ligne et j'ai un souci pour mon espace joueur.

Mon problème : Voici un exemple :

Par exemple les personnes connectés qui seront dans cette div :

echo'<div id="connectes">'.$pseudo->afficheMembresCo().'</div>';



J'aimerais que le contenu de la div id="connectes" s'actualise toutes les secondes afin que les personnes connectés s'affichent dynamiquement. Je sais qu'il existe un fonction en jquery load() ou avec AJAX mais je n'arrive pas à l'adapter à mon modèle.

Auriez vous une solution ou un exemple qui se rapproche du mien ?
Merci de votre aide



Voila la page d'affichage


 
<?php 
session_start(); 
include'connect_bdd.php';  
include_once 'membre.class.php'; 
$pseudo = new Membre($_SESSION['pseudo']);  
?> 
<html> 
<head> 
<link href="styles/style.css" rel="stylesheet" type="text/css" /> 
</head> 
<body>   
<?php 
if(isset($_SESSION['pseudo']) && $_SESSION['pseudo'] != "") 
{ 
echo'<div class="espace_profil">'; 
// Partie gauche 
echo'<div class="profil_gauche">'; 
echo'<div class="titre_profil"> <b> Bienvenue '.$pseudo->getPseudo().'</b> </div>'; 
echo'<br><br>'; 
include'classement.php';  
echo'</div>'; 
// Partie droite 
echo'<div class="profil_droite">'; 
echo'<div id="connectes">'.$pseudo->afficheMembresCo().'</div>'; 
echo'<br><br>'; 
echo'<div class="titre_profil"><b>Espace de demande</b></div>'; 
$pseudo->afficheDemande(); 
echo'<br><br>'; 
echo'<div class="titre_profil"><b>Espace de reception</b></div>'; 
$pseudo->afficheReception(); 
$pseudo->afficheRedirection(); 
echo'</div>'; 
// Fin Partie droite 
echo'</div>'; 
} 
else echo'Accès refusée'; 
?> 
</body> 
</html> 



Voila ma classe membre


<?php 

Class Membre 
{ 
 private $pseudo; 
  
 public function __construct($session) 
  { 
   include'connect_bdd.php'; 
   $this->pseudo = $session; 
   $pseudo_online = $bdd->query('select count(pseudo) as nb from cpt_connectes where pseudo="'.$session.'"')->fetchColumn(); 
    if($pseudo_online<=0) 
    { 
     $bdd->exec('insert into cpt_connectes (pseudo) values ("'.$session.'")'); 
    }   
  } 
   
 public function getPseudo() 
  { 
  return $this->pseudo; 
  } 
   
   
 public function afficheMembresCo() 
  { 
   include'connect_bdd.php'; 
   $inter = $bdd->query('select pseudo from cpt_connectes');  
   $nb_online = $inter->rowCount(); 
   $membre_dispo = $nb_online-1; 
   if($nb_online == 1) 
    echo '<div class="membres_dispo"><b>Il y a aucun membre disponible</b></div><br>'; 
   else  
    echo '<div class="membres_dispo"><b>Membres disponibles ('.$membre_dispo.')</b></div><br> '; 
   if($nb_online>0) 
    { 
    echo'<table>'; 
    while($donnees = $inter->fetch()) 
     { 
     if( $donnees['pseudo'] != $this->pseudo) 
      echo '<tr><td><font style="font-family:Verdana; font-size:13px">'.$donnees['pseudo'].'</font></td><td><img onclick="demande_jeu(\''.$donnees['pseudo'].'\');" style="margin-left:5px;cursor:pointer" src="img/demande_jeu.jpg" width="28px"/></td></tr>'; 
     } 
    echo'</table>'; 
    } 
  } 
   
 public function afficheDemande() 
  { 
   include'connect_bdd.php'; 
   $emetteur = $this->pseudo; 
   $verif_demande = $bdd->query("SELECT id FROM demande_jeu WHERE emetteur = '$emetteur'"); 
   $count = $verif_demande->rowCount();  
   if($count ==1) 
    { 
    $verif_dest = $bdd->query("SELECT * FROM demande_jeu WHERE emetteur = '$emetteur'"); 
    while ($donnees = $verif_dest->fetch())  
     { 
     if($donnees['reponse_dest'] == 'attente' )  
      echo '<br>Attente du joueur '.$donnees['destinataire'].'';  
     else  
      echo '<br>'.$donnees['destinataire'].' a accepté !'; 
     } 
    } 
   else 
    echo '<br>Aucune demande de jeu'; 
   
   $verif_demande->closeCursor();  
  } 
   
 public function afficheReception() 
  { 
   include'connect_bdd.php'; 
   $destinataire = $this->pseudo; 
   // On recherche si une demande a été faite 
   $verif_destinataire = $bdd->query("SELECT id FROM demande_jeu WHERE destinataire = '$destinataire'"); 
   $count = $verif_destinataire->rowCount(); 
    if($count ==1) 
    { 
    // Si la demande a été faite, on affiche la demande avec l'emetteur 
    $verif_em = $bdd->query("SELECT * FROM demande_jeu WHERE destinataire = '$destinataire'"); 
    while ($donnees = $verif_em->fetch())  
     { 
     if($donnees['partie_prete']!= 'oui' && $donnees['reponse_dest']!='oui' ) 
      { 
      echo 'Vous avez une demande de '.$donnees['emetteur'].'<br> Voulez-vous accepter ? <br> 
      <input type="submit" value="Oui" onclick="demande(\'acceptation.php\');rafraichir_rec();"/><input type="submit" onclick="demande(\'sup_dem.php\');" value="Non"/> '; 
      } 
    
     if($donnees['reponse_dest']=='oui' && $donnees['partie_prete']!= 'oui') 
      echo 'Création de la partie, veuillez patienter ...'; 
     } 
    $verif_em->closeCursor(); 
    } 
    else 
     echo ''; 
    
  } 
   
   
  public function afficheRedirection() 
  { 
  include'connect_bdd.php'; 
  $joueur = $this->pseudo; 
  $redirection_joueur1 = $bdd->query("SELECT * FROM demande_jeu WHERE emetteur = '$joueur'"); 
  while ($donnees = $redirection_joueur1->fetch())  
   { 
   $verif_redirection_j1 = $donnees['reponse_dest']; 
   if($verif_redirection_j1=='oui') 
   echo'<a href="creation_jeu.php"> Démarrer la partie</a>';  
   } 
  $redirection_joueur2 = $bdd->query("SELECT * FROM demande_jeu WHERE destinataire = '$joueur'"); 
  while ($donnees = $redirection_joueur2->fetch())  
   { 
   $verif_redirection_j2 = $donnees['partie_prete']; 
   if($verif_redirection_j2=='oui') 
   echo'<a href="creation_jeu.php"> Démarrer la partie</a>';  
   } 
  } 

  
  
} 

?> 


1 réponse

gaelcr Messages postés 40 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 23 mai 2012 8
1 déc. 2011 à 19:13
Bonsoir,

Pour résoudre votre problème, il faut voir 2 parties:
- 1 service qui retourne le html/json/xml correspondant à la liste des connectés (et seulement ça)
- exemple http://votresite.com/connectes.php
- 1 script (jquery ou autre) sur la page de votre jeu qui appelle régulièrement ce service et en affiche le contenu

Pour le 2eme point, il existe en effet une function jquery qui permet de mettre le contenu d'un appel ajax dans une div avec un ID donné. La doc est ici: https://api.jquery.com/load/

Bon courage!
Cordialement
Gael
0