Actualisation de la page

hlimaiem Messages postés 106 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 17 janvier 2007 - 6 mai 2006 à 19:42
hlimaiem Messages postés 106 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 17 janvier 2007 - 10 mai 2006 à 14:08
Limaiem Heykel
bonjour,
J'ai une page php qui affiche des resultat depuis une base de donnees .
J'ai plusieurs donnees qui s'ajoutent a ma base dans des temps differents y'a t -il une solution pour afficher les dernieres resultats des qu'elles s'ajoutent a ma base de donnes sans actualiser la page manuellement
merci enormement

14 réponses

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
6 mai 2006 à 20:49
Salut,
oui c'est possible, le principe s'appelleAjax : du javascript va exécuter une requête toutes les x minutes et modifier l'affichage en fonction des réponses.
Donc renseigne-toi sur Ajax, genre là pour commencer :

http://www.phpcs.com/ajax.aspx

mais attention, ce qu'ils expliquent ne fonctionne pas sous Firefox, donc à la limite va plutôt sur le site de firefox qui donne la bonne méthode (mais je me rappelle plus l'adresse).
à+
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
6 mai 2006 à 21:24
il y a autre chose aussi mais beaucoup plus brutal ...
ceci:
<meta http-equiv ="refresh" content="30;URL=./tchat.php">

j utilise ce meta pour raffraichir un tchat que j'ai fait pour discuter
30 represente le nombre de seconde entre chaque refresh
URL contient lapage vers laquelle cela va aller.

-------------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
7 mai 2006 à 14:00
Houlà Teclis, tu devrais peut-être changer de chat lol
Tu consommes bcp trop de ressources. Il y a des sources bien plus économiques, mais je sais pas si elles utilisent Ajax... si c pas le cas, faudra bien y venir un jour.
à+
0
hlimaiem Messages postés 106 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 17 janvier 2007
7 mai 2006 à 14:12
Limaiem heykel
Mais bon l'exemple d'ajax j'y est rien compris, peut etre je doit mieux expliquer mon pb:
Voila j'ai un programme java qui asspire des infos et les enregistrent ds une base de donnee MYSQL donc je peut avoir 100 nouvel enregistrement chaque x temp comme je peut n'avoir aucun enregistrement pendant longtemps.
Dans ma page php l'affichage des resultat se fait suivant une requete de la base de donnee ds un tableau je voudrait pas rafrechir la page chaque 5 ou 10 seconde
je voudrait la rafracihir chaque fois que j'ai de nouveua enregistrement
Merci bq
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
7 mai 2006 à 16:15
On a bien compris, t'inkiète. Re-cherche des tutoriaux sur Ajax (vive google)
salut
0
hlimaiem Messages postés 106 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 17 janvier 2007
7 mai 2006 à 17:54
Limaiem heykel
Mais bon quesque je doit rechercher exactement je ne connait pas les struts et l'exemple que j'ai trouver parle de struts et de...
Mon probleme et ce que je veu seulement rafraichir la page qd j'ai de nouveau enregistrement donc je veux faire une sorte d'ecouteur de la base de donnees..
Les tutoriaux que j'ai trouver son tres complique et pour les comprendre il me fau bq de temps ( il me reste seulement pour terminer le travail que j'ai ) donc -> gros pb
Merci en tout cas enormement
0
cs_spyro666 Messages postés 137 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 28 août 2007
8 mai 2006 à 15:11
Voilà ce qui pourrait t'aider :

<script language="javascript">
xhr_url = 'ta_page_ecoute.php';
old_xhr_response = '';
function SendGetRequest() {
if ( window.XMLHttpRequest ) {
// Objet XmlHttpRequest pour les moteurs GECKO
xhr_object = new XMLHttpRequest();
} else if ( window.ActiveXObject ) {
// Objet XmlHttpRequest pour Internet Explorer
xhr_object = new ActiveXObject( 'Microsoft.XMLHTTP' );
} else {
// Navigateur non-compatible
alert( 'Votre navigateur ne supporte pas les objets XMLHTTPRequest...' );
return;
}
// On ouvre la requete vers la page désirée
xhr_object.open( 'GET', xhr_url, false );
// On lui donne le pointeur de fonction de retour
xhr_object.onreadystatechange = CallBackRequest;
// On envoi la requete
xhr_object.send( null );
}

function CallBackRequest() {
// Sur le retour de la requete, on teste son état
if ( xhr_object.readyState == 4 ) {

//il faut maintenant connaître la valeur de la dernière entrée de ta base de donnée :
if(xhr_object.ResponseText != old_xhr_response) {old_xhr_response xhr_object.ResponseText; document.getElementById('ton_champ_de_stockage').innerHTML xhr_object.ResponseText;
}
}
}
SetInterval("SendGetRequest()",10000)

</script>

Ca fait 10 balles ;)

Spyro666 contre le 555
0
hlimaiem Messages postés 106 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 17 janvier 2007
9 mai 2006 à 04:56
Limaiem heykel
Merci bq pour votre aide donc ce que j'ai compris je doit mettre ce script dans ma page .php et les deux variable xhr_url c'est la page qui fait koi justement je l'ai pas compris et old_xhr_reponse
je doit y mettre l'index de mon dernier enregistrement (mes onregistrement son idexer on ordre) et c'est en javaScript la variable donc la syntaxe serait old_xhr_response ='<? echo $['index']; ?>
Merci enormenet si tu peut m'expliquer un peut le code que tu ma transmit ou le mettre exactement et comment le traiter
Merci bq votre aidre me serait enormement benfique
0
cs_spyro666 Messages postés 137 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 28 août 2007
9 mai 2006 à 10:21
Bon je vais essayer de t'expliquer comment ça se passe :

<script language="javascript">
xhr_url = 'ta_page_ecoute.php'; // C'est l'url du fichier dans lequel tu testes si il y a un nouvel enregistrement
old_xhr_response = ''; // on initie la variable pour que au premier test on mette a jour l'affichage
function SendGetRequest() {
//-----------cette section sert à la détection du navigateur (ne pas modifier)
if ( window.XMLHttpRequest ) {
// Objet XmlHttpRequest pour les moteurs GECKO
xhr_object = new XMLHttpRequest();
} else if ( window.ActiveXObject ) {
// Objet XmlHttpRequest pour Internet Explorer
xhr_object = new ActiveXObject( 'Microsoft.XMLHTTP' );
} else {
// Navigateur non-compatible
alert( 'Votre navigateur ne supporte pas les objets XMLHTTPRequest...' );
return;
}
// On ouvre la requete vers la page désirée
xhr_object.open( 'GET', xhr_url, false );
// On lui donne le pointeur de fonction de retour
xhr_object.onreadystatechange = CallBackRequest;
// On envoi la requete
xhr_object.send( null );
}

function CallBackRequest() {
// Sur le retour de la requete, on teste son état
if ( xhr_object.readyState == 4 ) {

//il faut maintenant connaître la valeur de la dernière entrée de ta base de donnée :
if(xhr_object.ResponseText != old_xhr_response) {
old_xhr_response = xhr_object.ResponseText; // je stock toute la réponse du fichier dans cette variable
//afin que la prochaine fois que le fichier php me retourne qqch je puisse comparé toute la réponse.
document.getElementById('ton_champ_de_stockage').innerHTML = xhr_object.ResponseText;
}
}
}
SetInterval("SendGetRequest()",10000)

</script>

Ton fichier "ta_page_ecoute.php" ressemblerais à ça :

<?php

$link = mysql_connect("localhost","root","");

mysql_select_db("ta_base",$link);

$SQL = "SELECT * FROM `table`";

$Query = mysql_query($SQL);

while($Row = mysql_fetch_array($Query)) {

echo "Ce que tu veux afficher...";

}
?>

Spyro666 contre le 555
0
hlimaiem Messages postés 106 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 17 janvier 2007
9 mai 2006 à 15:21
Limaiem heykel
Bonjour encore une fois. Bein je m'excuse encore une autre fois . Ca pas marcher je vous donne mon bout de code que j'ai ecrit mais la page ne se rafraichi pas :
//MA page start.php ou il y aura l'affichage des resultat
<? ...
mysql_connect("localhost","root","");
mysql_select_db("car");

$x = mysql_query("SELECT MAX(`index1`) AS heykel FROM voiture");
$mx = mysql_fetch_array($x);//ici je selectionne l'enregistrement posedant le plus grand index de ma base de donnees

$_SESSION['maxim'] = "";
$_SESSION['maxim'] = $mx['heykel'];
...?>

<script language="javascript">
xhr_url = 'admin/ecouteur.php';
old_xhr_response = '<? echo $_SESSION['maxim']; ?>';/// l'old_xhr_response contient donc le plus grand index de ma base de donnees actuelle que j'ai afficher
function SendGetRequest() {
if ( window.XMLHttpRequest ) {
// Objet XmlHttpRequest pour les moteurs GECKO
xhr_object = new XMLHttpRequest();
} else if ( window.ActiveXObject ) {
// Objet XmlHttpRequest pour Internet Explorer
xhr_object = new ActiveXObject( 'Microsoft.XMLHTTP' );
} else {
// Navigateur non-compatible
alert( 'Votre navigateur ne supporte pas les objets XMLHTTPRequest...' );
return;
}
// On ouvre la requete vers la page désirée
xhr_object.open( 'GET', xhr_url, false );
// On lui donne le pointeur de fonction de retour
xhr_object.onreadystatechange = CallBackRequest;
// On envoi la requete
xhr_object.send( null );
}

function CallBackRequest() {
// Sur le retour de la requete, on teste son état
if ( xhr_object.readyState == 4 ) {

//il faut maintenant connaître la valeur de la dernière entrée de ta base de donnée :
if(xhr_object.ResponseText != old_xhr_response) {
old_xhr_response = xhr_object.ResponseText;
document.getElementById('<? echo $_SESSION['heykel1']; ?>').innerHTML = xhr_object.ResponseText; /// $_session['heykel1'] et la valeur retourner par la page ecouteur.php qui
///renvoit le plus grand index dans ma base de donnees donc si nouveau enregistrement dans ma base de donnees la var de session contiendrai cette valeur
}
}
}
SetInterval("SendGetRequest()",10000)

</script> // la suite de ma page

La page ecouteur.php contiendrai donc ce code qui permet de renvoyer la plus grande valeur de ma base de donnees:
<?
session_start();

mysql_connect("localhost","root","");
mysql_select_db("car");

$x = mysql_query("SELECT MAX(`index1`) AS heykel FROM voiture");
$mx = mysql_fetch_array($x);
$_SESSION['heykel1'] = $mx['heykel'];

?>

Merci bq votre aide me serai precieuse, je m'excuse pour le derangement mais bon je croit qu'avec un peut de correction ca va marcher ( avec votre aide bien sur)
0
cs_spyro666 Messages postés 137 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 28 août 2007
9 mai 2006 à 19:02
Il faut juste encore renvoyer à l'aide d'un echo ta valeur $mx['heykel']; pour qu'il puisse être reconnu en tant que responseText.

Spyro666 contre le 555
0
hlimaiem Messages postés 106 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 17 janvier 2007
9 mai 2006 à 21:01
J'ai ajouter la fonction echo $mx['heykel1']; ca pas marcher la page ne s'est pas rafraichit quand j'ai eu de nouveau enregistrement dans ma base. Je fait koi donc
Merci
0
cs_spyro666 Messages postés 137 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 28 août 2007
10 mai 2006 à 12:30
document.getElementById('<? echo $_SESSION['heykel1']; ?>').innerHTML = xhr_object.ResponseText;

Il faut ajouter dans ta page à l'endroit ou tu désire afficher le contenu ceci :

et remplacer document.getElementById('<? echo $_SESSION['heykel1']; ?>').innerHTML = xhr_object.ResponseText;

par :

document.getElementById('contenu').innerHTML = xhr_object.ResponseText;

là ça devrait fonctionner.

Spyro666 contre le 555
0
hlimaiem Messages postés 106 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 17 janvier 2007
10 mai 2006 à 14:08
Bonjour, merci pour votre aide mais ca ne marche pas , j'ai effectuer tous les changement que vous m'avez indiquer mais pas encore il y a un probleme que j'ai pas su le localiser.
Je croit je vait m'expliquer : Vous m'avez indiquer d'utiliser une page ecouteur qui permet d'emettre la nouvele variable saisie depuis ma base de donnees pour la comparer dans ma page principale
avec le dernier index existant. Donc d'apres ce que j'ai lu il y 3 type de passage de valeurs : POST, GET ,HEADER ....
Je voudrait savoir s'il y un pb a ce niveau peut etre. Aussi je ne veux rien afficher dans ma page je veux seulement la rafraichir completement si un nouveu enregistrement me serai envoyer par la page ecouteur .
VOici mon code :
page start.php
<?
session_start();
$heykel = "";
$heykel = "".$_SESSION['query'];
echo $heykel;
$great = 0;
mysql_connect("localhost","root","");
mysql_select_db("car");

$x = mysql_query("SELECT MAX(`index1`) AS heykel FROM voiture");
$mx = mysql_fetch_array($x);

$_SESSION['maxim'] = "";
$_SESSION['maxim'] = $mx['heykel'];

$rtc = "";
$rtc = $_SESSION['heykel1'];


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
body {
background-color: #DFDCE4;
}
.Style1 {
font-size: 18px;
font-weight: bold;
}
.Style2 {font-size: 24px}
.Style4 {font-size: 24px; font-weight: bold; }
-->
</style></head>

<script language="javascript">
xhr_url = 'admin/ecouteur.php';
old_xhr_response = '<? echo $_SESSION['maxim']; ?>';
var xhr_object = null;
function SendGetRequest() {
if ( window.XMLHttpRequest ) {
// Objet XmlHttpRequest pour les moteurs GECKO
xhr_object = new XMLHttpRequest();
} else if ( window.ActiveXObject ) {
// Objet XmlHttpRequest pour Internet Explorer
xhr_object = new ActiveXObject( 'Microsoft.XMLHTTP' );
} else {
// Navigateur non-compatible
alert( 'Votre navigateur ne supporte pas les objets XMLHTTPRequest...' );
return;
}
// On ouvre la requete vers la page désirée
xhr_object.open( 'GET', xhr_url, true );// Je doute que le mode de transmission de donnees n'est pa correct puisque je ne transmet pas de donnees je veu seulement recupere le dernier enregistrement de ma base et je croit que CallBackRequest permet la comparaison de l'ancien index et le nouveau recuppere par la page
// On lui donne le pointeur de fonction de retour
xhr_object.onreadystatechange = CallBackRequest;
// On envoi la requete
xhr_object.send( null );
}

function CallBackRequest() {
// Sur le retour de la requete, on teste son état
if ( xhr_object.readyState == 4 ) {

//il faut maintenant connaître la valeur de la dernière entrée de ta base de donnée :
if(xhr_object.ResponseText != old_xhr_response) {
old_xhr_response = xhr_object.ResponseText;
document.getElementById('contenu').innerHTML = xhr_object.ResponseText;
javascript:location.reload();//Ext ce que ca permet de rafraichir la page ??????????? si nouveau enregistrement
}
}
}
SetInterval("SendGetRequest()",10)

</script>

Pour la page ecouteur j'ai rien changer .
Merci bq
0
Rejoignez-nous