Hallo Leute, Ich schraube gerade an dem automatischen PM check der automatisch prüfen wird ob man neu Nachrichten hat oder nicht wenn ja dann wird "(Anzahl) Nachricht(en)" angezeigt wenn man keine neu Nachrichten hat wird auch nix angezeigt. Ich möchte dass man das auch ohne die Seite refreshen zu müssen angezeicht bekommt. Deswegen habe ich mir einen Javascript Code zusammen geschraubt aber der will irgendwie nicht funktionieren. Der soll ja automatisch mit pm.php verbinden und prüfen ob neu Nachrichten vorhanden sind oder nicht hier ist mein Javascript Code der steht bei mir in index.php :
und hier ist meine pm.php Datei die mit der Mysql verbindet und prüft .Wenn ich per Session prüfen dann geht es, aber dafür muss ich jedes mal die Seite neu refreshen(laden) um zu sehen ob ich neue Nachrichten habe oder nicht und wenn ich versuche das per Javascript zu prüfen geht das nicht ...
wo liegt der Fehler oder was mach ich falsch ? komme irgendwie nicht weiter ( heute ist nicht mein Tag ))
Code:
<input type="hidden" id="userid" value="2">
<script type="text/javascript"><!--
var request = false;
var newmsgintvl = false;
function setRequest(value) {
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
request = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
try {
request = new ActiveXObject('Microsoft.XMLHTTP');
} catch (e) {}
}
}
if (!request) {
return false;
} else {
var url = "msg.php";
request.open('post', url, true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.send('name='+value);
request.onreadystatechange = interpretRequest;
}
}
function settitleinterval() {
if(document.title == 'Neue Nachricht!')document.title = 'Seite.de';
else document.title = 'Neue Nachricht!';
if(document.getElementById('msg').innerHTML == ''){
window.clearInterval(newmsgintvl);
document.title = 'Seite.de Nachrichten';
}
}
function checkinterval(){
if(document.getElementById('msg').innerHTML != '' && newmsgintvl == false ){
newmsgintvl = window.setInterval("settitleinterval()", 700);
}
}
function interpretRequest() {
switch (request.readyState) {
case 4:
if (request.status != 200) {
}
else
{
var content = request.responseText;
document.getElementById('msg').innerHTML = content;
checkinterval();
}
break;
default:
break;
}
}
var userid = document.getElementById('userid').value;
var aktiv = window.setInterval("setRequest("+userid+")", 60000);
var timeout = 0;
var closetimer = 0;
var ddmenuitem = 0;
function mopen(id)
{
mcancelclosetime();
if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
ddmenuitem = document.getElementById(id);
ddmenuitem.style.visibility = 'visible';
}
function mclose()
{if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';}
function mclosetime(){closetimer = window.setTimeout(mclose, timeout);}
function mcancelclosetime()
{
if(closetimer){window.clearTimeout(closetimer);closetimer = null;}}document.onclick = mclose;
// --></script>
<?php include ("pm.php"); ?>
und hier ist meine pm.php Datei die mit der Mysql verbindet und prüft .Wenn ich per Session prüfen dann geht es, aber dafür muss ich jedes mal die Seite neu refreshen(laden) um zu sehen ob ich neue Nachrichten habe oder nicht und wenn ich versuche das per Javascript zu prüfen geht das nicht ...
PHP:
<?php
include ("../../inc/db.php");
$uid = $_GET['userid'];
//@session_start();
//$sess = $_SESSION['login_id'];
$q = mysql_query("SELECT * FROM pm_messages WHERE to_user = '$uid' AND m_read = '0' AND folder = 'inbox' ") or die (mysql_error());
$num = mysql_num_rows($q);
if ($num != 0) echo '<span id="msg"> '.$num.' neue Mail</span>';
?>
wo liegt der Fehler oder was mach ich falsch ? komme irgendwie nicht weiter ( heute ist nicht mein Tag ))