Rafraichir all client

Eléphant du PHP | 223 Messages

19 mai 2010, 18:42

re slt

j'ai créer un compte rebour je doit metre un bouton submit pour ajouter du temp
comment faire pour quand j'ajoute du temp pour que tous les client connecter a la page soit actualiser
la je bloque encore
le compte rebour : php-avance/hebergeur-t253448.html
merci de votre aide

ViPHP
ViPHP | 5462 Messages

19 mai 2010, 18:44

re :wink:
il faudrait que ta page s'actualise tout les X temps

Eléphant du PHP | 223 Messages

19 mai 2010, 18:44

pas moyen de faire autrement ?

ViPHP
ViPHP | 5462 Messages

19 mai 2010, 18:47

pas moyen de faire autrement ?
non, ou alors en flash ou java.
apres en AJAX avec une actualisation par exemple tout les 5 secondes c'est presque transparent

Eléphant du PHP | 223 Messages

19 mai 2010, 18:50

en ajax ok je teste sa demain merci stealth35
bonne soirée =D>

Eléphant du PHP | 223 Messages

22 mai 2010, 16:00

slt

bon teste ajax mais je n'arrive

Code : Tout sélectionner

<script> function refresh_div() { var xhr_object = null; if(window.XMLHttpRequest) { // Firefox xhr_object = new XMLHttpRequest(); } else if(window.ActiveXObject) { // Internet Explorer xhr_object = new ActiveXObject('Microsoft.XMLHTTP'); } var method = 'POST'; var filename = 'rebourOK.php'; xhr_object.open(method, filename, true); xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) { var tmp = xhr_object.responseText; document.getElementById('1').innerHTML = tmp;//la je voudrais que tous les div soit actualiser } } xhr_object.send(null); setTimeout('refresh_div()', 2000); } </script> <?php include('../conf/conf.php'); $db = mysql_connect($serveur, $user, $passw); mysql_select_db($bd_base ,$db); $sql = " SELECT id_Objet, h_fin FROM Objet "; $req = mysql_query($sql) or exit(mysql_error()); $tb = array(); while($data = mysql_fetch_object($req)) { $df=$data->h_fin; $Num=$data->id_Objet; echo"<form method='POST' enctype='multipart/form-data'>"; printf('<div id="%d"></div>', $data->id_Objet); $tb[$data->id_Objet] = strtotime($data->h_fin) * 1000; echo"<input type='hidden' name='Num' value='$Num'>"; echo'</form>'; } ?> <script type="text/javascript"> function refrech() { top.recapProjet.location.reload(); } var date_fin = <?php echo json_encode($tb) ?>; var date = <?php echo time() * 1000 ?>; var timer = function() { for(var i in date_fin) { if(date_fin.hasOwnProperty(i)) { var div = document.getElementById(i); var diff = date_fin[i] - date; if(diff > 0) { var down = new Date(diff); var days = Math.floor(diff / 86400000); div.innerHTML =days+ ' days ' +down.getUTCHours()+ ' hours ' +down.getMinutes() + ' minutes ' +down.getSeconds()+ 'seconds<BR><BR><? echo"<input type=submit name=ajouplus value=Ajouter>"; ?>'; } else { delete date_fin[i]; div.innerHTML = 'Termin&eacute;'; } } } date += 1000; window.setTimeout(timer, 1000); }; window.setTimeout(timer, 1000); </script> <body onload='refresh_div();'> <? if(isset($ajouplus)){ $Num=$_POST['Num']; $sql = " SELECT h_fin FROM Objet where id_Objet='$Num' "; $req = mysql_query($sql) or exit(mysql_error()); while($datas = mysql_fetch_array($req)) { echo"$num"; $h_fin= $datas['h_fin']; $getimes=strtotime($h_fin); $temp=$getimes+10; $temps=date('Y-m-d H:i:s',$temp); mysql_select_db($bd_base, $db); $sql2 = "UPDATE Objet SET h_fin='$temps' WHERE id_Objet='$Num'"; mysql_query($sql2) or die('Erreur SQL !'.$sql2.''.mysql_error()); } } ?>

ViPHP
ViPHP | 5462 Messages

24 mai 2010, 17:10

dans ton responseText , y'a quoi ?

Eléphant du PHP | 223 Messages

25 mai 2010, 10:52

je sais pas j avous je comprend rien as ajax
je foudrais une actualisation des compteur cote serveur
comme sa chaque client on le meme temps sur les compteur

ViPHP
ViPHP | 5462 Messages

25 mai 2010, 11:02

je foudrais une actualisation des compteur cote serveur
c'est pas possible

ViPHP
ViPHP | 4039 Messages

25 mai 2010, 11:19

Ce que tu cherches à faire (mettre à jour le compteur de tous les visiteurs lorsqu'un d'eux effectue une action) est éventuellement possible (long-polling/comet ou ajax), mais il faut déjà avoir un certain niveau pour pouvoir la mettre en place.

Un solution plus simple consisterait en un iframe affichant une page contenant le compteur, qui se rafraichirait toutes les X secondes.

Ne t'attends cependant pas à ce que je te fournisse le code exact :wink:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 223 Messages

25 mai 2010, 11:21

je peut pas faire en sorte que tous les client on le meme compteur ?
si la page s'actualise elle actualise les compteur aussi non ?

ViPHP
ViPHP | 5462 Messages

25 mai 2010, 11:22

je peut pas faire en sorte que tous les client on le meme compteur ?
si la page s'actualise elle actualise les compteur aussi non ?
l'actualisation se fera coté client, tout les 5 secondes par exemple, et ca sera chez tout le monde pareil a 5 secondes prêt

Eléphant du PHP | 223 Messages

28 mai 2010, 17:24

slt
bon j'ai fait sa mais tjr blem
cela rafraichir mais il ne recharche pas les donner de la base
qui peut m'aide j'en peut plus de se code
<script language="javascript" type="text/javascript"> 
function refresh_div() { 
    var xhr_object = null; 
    if (window.XMLHttpRequest) { 
        xhr_object = new XMLHttpRequest(); 
    } else if (window.ActiveXObject) { 
        try { 
            xhr_object = new ActiveXObject('Microsoft.XMLHTTP'); 
        } catch(e) { 
        } 
    } else { 
    } 
    var method = 'POST'; 
    var filename = 'rebourOK.php'; 
    xhr_object.open(method, filename, true); 
    xhr_object.onreadystatechange = function() { 
        if(xhr_object.readyState == 4) { 
            var tmp = xhr_object.responseText; 
            document.getElementById('test').innerHTML = tmp; 
               if (tmp == "ok")  {  
        alert("son ok") ;               
          } 
        var timer=setTimeout("refresh_div()",5000); // rafraichie toute les 1sec 
        } 
    } 
    xhr_object.send(null); 
} 
</script>
<div id="test">
<?php
include('../conf/conf.php');
 $db = mysql_connect($serveur, $user, $passw);
 mysql_select_db($bd_base ,$db);
 $sql     = " SELECT id_Objet, h_fin FROM Objet ";
 $req     = mysql_query($sql) or exit(mysql_error());
 $tb    = array();
  while($data = mysql_fetch_object($req))
  {
  	$df=$data->h_fin;
 	$Num=$data->id_Objet;
 	echo"<form method='POST' enctype='multipart/form-data'>";
    printf('<div id="%d"></div>', $data->id_Objet);
    $tb[$data->id_Objet] = strtotime($data->h_fin) * 1000;
    echo"<input type='hidden' name='Num' value='$Num'>";
    
    echo'</form>';



  }
?>

 <script type="text/javascript">

  var date_fin = <?php echo json_encode($tb) ?>;
  var date  = <?php echo time() * 1000 ?>;
  var timer = function()
  {       
    for(var i in date_fin)
    {
      if(date_fin.hasOwnProperty(i))
      {
        var div  = document.getElementById(i);
        var diff = date_fin[i] - date;
  
        if(diff > 0)
        {
          var down = new Date(diff);
          var days = Math.floor(diff / 86400000);
		  div.innerHTML =days+ ' days ' +down.getUTCHours()+ ' hours ' +down.getMinutes() + ' minutes ' +down.getSeconds()+ 'seconds<BR><BR><? echo"<input type=submit name=ajouplus value=Ajouter>"; ?>';
        }
          else
        {
          delete date_fin[i];
          div.innerHTML = 'Termin&eacute;';
        }
      }     
    }
    date += 1000;
    window.setTimeout(timer, 1000);
  };
  window.setTimeout(timer, 1000);
</script>

<BODY onLoad="refresh_div();">

<?
if(isset($ajouplus)){

$Num=$_POST['Num'];
 $sql     = " SELECT  h_fin FROM Objet where id_Objet='$Num'  ";
 $req     = mysql_query($sql) or exit(mysql_error());
while($datas = mysql_fetch_array($req)) 
{ 
echo"$num";
$h_fin= $datas['h_fin'];

$getimes=strtotime($h_fin);
$temp=$getimes+10;
$temps=date('Y-m-d H:i:s',$temp);

mysql_select_db($bd_base, $db);
$sql2 = "UPDATE Objet SET  h_fin='$temps' WHERE id_Objet='$Num'";
mysql_query($sql2) or die('Erreur SQL !'.$sql2.''.mysql_error());

	
}
}
?>
</div>




ViPHP
ViPHP | 5462 Messages

28 mai 2010, 17:30

la ta tout changer pourquoi y'a des formulaires ?

Eléphant du PHP | 223 Messages

28 mai 2010, 17:33

ben c'est juste 4 compte rebour avec un bouton pour ajouter du temp
je veut que sa actulise pour que chaque client on le meme temp qui s'affiche