Probléme avec AJAX

BenXbox Messages postés 210 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 14 août 2007 - 20 déc. 2005 à 11:59
BenXbox Messages postés 210 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 14 août 2007 - 20 déc. 2005 à 17:45
Salut à tous,
Voila j'utilise AJAX pour mon site pour savoir si j'ai des nouveaux messages privés.
J'utilise le XHRConnection.js du site : http://xhrconnection.sutekidane.net/releases/current/XHRConnection.js
Mais j'ai un probléme,
Voila j'ai un fichier nouveaump2.php qui appel avec le XHRConnection.js le fichier nouveaump3.php
J'affiche ma page nouveaump2.php il me mais :
Vous avez 1 nouveau message.
Alors je vais lire ce message avec la page voirmp2.php qui UPDATE ma $Table2 pour dire que j'ai bien lue le message.
La page nouveaump2.php s'actualise toutes les 20 secondes et la il m'affiche toujours :
Vous avez 1 nouveau message.
Alors qu'elle devrait m'afficher :
Vous avez 0 nouveau message.

Merci d'avance.

Mon Site Web : http://Www.BenXbox.Fr.sT

17 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 déc. 2005 à 12:29
Salut,

envoi nous ton code à toi !

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
BenXbox Messages postés 210 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 14 août 2007
20 déc. 2005 à 12:33
Oki voici mon code :





Page nouveaump2.php :


Code : JavaScript


<html>

<head>

<link href="style.css" rel="stylesheet" type="text/css">

</head>




"zoneCible">


<script type="text/javascript" src="XHRConnection.js"></script>

<script type="text/javascript">

chargeFichier();

function chargeFichier()

{

// Création de l'objet

var XHR = new XHRConnection();

// Zone à remplir

XHR.setRefreshArea('zoneCible');

XHR.sendAndLoad("nouveaump3.php", "GET");

setTimeout("chargeFichier()", 20000);

return true;

}

</script>



</html>








Page nouveaump3.php :


Code : PHP


<?php

include 'config.php';

$Tableau = explode(" ", $_COOKIE['tchatteurs']);

$Pseudo3 = $Tableau[1];

$requete = mysql_query("SELECT SUM(`Domaine`='$IdDomaine' AND Pseudo='$Pseudo3' AND Vue LIKE '0') AS Total1 from $Table1");

$A = mysql_fetch_array($requete);

$Plus = $A['Total1'];

$requete = mysql_query("SELECT SUM(`Domaine`='$IdDomaine' AND Pseudo2='$Pseudo3' AND Vue LIKE '0' AND Sup LIKE '0') AS Total from $Table2");

$A = mysql_fetch_array($requete);

$Tous = $A['Total']+$Plus;

if($Tous==1)

{

echo '
[vosmp.php
Vous avez 1 nouveau
message.
]
';

}

else

{

if($Tous!=0)

{

echo '
[vosmp.php
Vous avez '.$Tous.' nouveaux messages.
]
';

}

else

{

echo '
[vosmp.php
Vous avez 0 nouveau
message.
]
';

}

}

mysql_close();

?>




Voici un bout (car le fichier et énorme) du fichier voirmp.php :


Code : PHP


<?php

include 'verifid.php';

mysql_query("UPDATE $Table2 SET `Vue` = '1' where id='".$_GET['id']."' AND Pseudo2='".$_SESSION['Pseudo']."'");

?>





UPDATE de la table 2 ce fais bien, quant je vais directement sur la
page nouveaump3.php il me dit bien : Vous avez 0 nouveau message.





Merci d'avance.

Mon Site Web : http://Www.BenXbox.Fr.sT
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 déc. 2005 à 14:49
Ben affiche $Tous, tu verras bien ce qu'il te retourne.
0
BenXbox Messages postés 210 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 14 août 2007
20 déc. 2005 à 14:54
J'ai pas compris.

Mon Site Web : http://Www.BenXbox.Fr.sT
0

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

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 déc. 2005 à 14:58
Salut,

ici, je ne vois pas de code js qui permette d'afficher si t'as eu un nouveau message ou pas...


ensuite, t'appelles ta fonction avant de la déclarer... c'est pas propre...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
BenXbox Messages postés 210 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 14 août 2007
20 déc. 2005 à 14:59
Bas si je l'appel :
Page nouveaump2.php :
Code : JavaScript
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css">
</head>


"zoneCible">

<script type="text/javascript" src="XHRConnection.js"></script>
<script type="text/javascript">
chargeFichier();
function chargeFichier()
{
// Création de l'objet
var XHR = new XHRConnection();
// Zone à remplir
XHR.setRefreshArea('zoneCible');
XHR.sendAndLoad("nouveaump3.php", "GET");
setTimeout("chargeFichier()", 20000);
return true;
}
</script>

</html>

Mon Site Web : http://Www.BenXbox.Fr.sT
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 déc. 2005 à 15:01
Ah...lol.
c'est $Tous qui détermine ce que va renvoyer ton script php à ta 1ère page, non ?
si $Tous == 1, tu renvoies qu'on a 1 nouveau message
sinon, si $Tous != 0 ... etc.

Donc, affiche $Tous.
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 déc. 2005 à 15:27
Salut,

malam, dans une xmlhttprequest, ce que tu affiches est exécuté ou traité par du js et non affiché...



la fonction js ne fait pas grand chose, pour moi le problème vient de là...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 déc. 2005 à 15:29
Salut,

désolé de ne pas avoir été explicite :





// Création de l'objet

var XHR = new XHRConnection();

// Zone à remplir

XHR.setRefreshArea('zoneCible');

XHR.sendAndLoad("nouveaump3.php", "GET");

setTimeout("chargeFichier()", 20000);

return true;

}



je ne vois aucun alert("vous avez "+reponse+"nouveaux messages !"); ou truc pouvant remplacer...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
BenXbox Messages postés 210 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 14 août 2007
20 déc. 2005 à 16:14
Bas si sa affiche dans le
"zoneCible">
Mon Site Web : http://Www.BenXbox.Fr.sT
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 déc. 2005 à 16:30
Salut,

t'aurais du utiliser un code à toi ! pour les xmlhttp, ça aurait été plus pratique...



pour ton code php, t'as deux if imbriqués, alors que else if existe, c'est plus propre...



if($Tous==1)

{

echo '
[vosmp.php
Vous avez 1 nouveau
message.
]
';

}

else if($Tous!=0)

{

echo '
[vosmp.php
Vous avez '.$Tous.' nouveaux messages.
]
';

}

else

{

echo '
[vosmp.php
Vous avez 0 nouveau
message.
]
';

}

et moi je te proposes des print_r($A); pour afficher ce que t'as dedans exactement...


In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 déc. 2005 à 16:59
Coucou => ?? Ca n'empêche pas que son script php, appelé par sa requête xmlhttp, se base sur $Tous pour savoir quel texte renvoyer à la page appelante.
Ensuite, le js présenté n'est sans doute pas présenté dans son intégralité parcequ'il y a des méthodes de son objet XHR que je ne connais pas...donc, qui doivent être définies quelquepart.

Ceci dit, en effet, il manque un innerHTML quelquepart. Et s'il est, comme je le pense, dans SetRefreshArea, il est mal placé.
0
BenXbox Messages postés 210 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 14 août 2007
20 déc. 2005 à 17:13
Je viens d'essayer avec print sa ne marche pas non plus :(
Mon Site Web : http://Www.BenXbox.Fr.sT
0
BenXbox Messages postés 210 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 14 août 2007
20 déc. 2005 à 17:28
Je n'est pas de innerHTML dans mon code faudrais le mettre ou ?
Merci d'avance.
Mon Site Web : http://Www.BenXbox.Fr.sT
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 déc. 2005 à 17:34
Salut,
t'as un truc genre :



document.getElementById('moniddereponse').innerHTML=reponse;

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
BenXbox Messages postés 210 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 14 août 2007
20 déc. 2005 à 17:36
Dans le .js ????

Mon Site Web : http://Www.BenXbox.Fr.sT
0
BenXbox Messages postés 210 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 14 août 2007
20 déc. 2005 à 17:45
Si il y est dans le .js je l'est trouvé :
document.getElementById(areaId).innerHTML = conn.responseText;
Mon Site Web : http://Www.BenXbox.Fr.sT
0
Rejoignez-nous