LazerViking: mittels AJAX ( XMLHttpRequest ) popups erzeugen?!

Beitrag lesen

hallo liebe leute!
folgendes problem tut sich derzeit bei mir auf und ich weiss nich wie ich es formulieren soll!

also erstens:

ich habe eine PHP datei die eine WHILE schleife hat und diese soll (falls etwas aus der datenbank ausgelesen wird) dann popups erzeugen
der code sieht wie folgend aus:

<?php
// Einstellungen laden
include("../config.php");
$receiver = $_SESSION['user_id'];
// Datensätze ermitteln
$dbresult = mysql_query("SELECT convo_id, sender_id, receiver_id, message, DATE_FORMAT(message_time, '%T') as msgtime, readstatus_receiver FROM dimmconvos ORDER BY msgtime");
if (!$dbresult) {
   die('Ungueltige SQL-Query.');
}

// Datensätze auslesen, Fensterfunktion setzen und anschließend Funktion aufrufen

while ($row = mysql_fetch_array($dbresult)) {

echo "  <script type='text/javascript'>

function win".$row['message']."()
   {
    var win = new Window({id: '".$row['message']."', className: 'alphacube', title: 'Chat mit ', width:300, height:160});
     win.getContent().innerHTML = 'tesssttt';

win.setDestroyOnClose();
     win.showCenter();
    win.setConstraint(true, {left:0, right:0, top: 30, bottom:10})
     win.toFront();
   }

</script>

<script type='text/javascript'> win".$row['message']."(); </script>";

?>

alles was nun in ECHO ausgeben wird soll von einer anderen datei welche mit einem XMLHttpRequest AJAX code ausgestattet ist ausgelesen und im dokument wieder gegeben werden.
der ajax-code sieht wie folgend aus und ist in die darauf folgende html datei eingebunden

// globale Instanz von XMLHttpRequest
var xmlHttp = false;

// XMLHttpRequest-Instanz erstellen
// ... für Internet Explorer
try {
    xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
    try {
        xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e) {
        xmlHttp  = false;
    }
}
// ... für Mozilla, Opera und Safari
if (!xmlHttp  && typeof XMLHttpRequest != 'undefined') {
    xmlHttp = new XMLHttpRequest();
}

// aktuelle Daten laden
loadData();

// alle 5 Sekunden neue Daten holen
setInterval("loadData()",5000);

function loadData()
{
 if (xmlHttp) {
     xmlHttp.open('GET', 'checker.php', true);
     xmlHttp.onreadystatechange = function () {
         if (xmlHttp.readyState == 4) {
             document.getElementById("checker_content").innerHTML = xmlHttp.responseText;
         }
     };
     xmlHttp.send(null);
 }
}

er befindet sich in der datei "checker.js"
heißt: wenn die php schleife einen code für die erzeugung eines neuen popups ausgibt wird dieser von der XMLHttpRequest gelesen und im dokument welches gleich folgt ausgegeben und SOLLTE eigentlich ein neues popup erzeugen (doctype und header etc. hab ich hier jetzt mal entfernt)

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

<div id="checker_content">

....

</div>

alles soll dazu dienen dass ich kein meta-refresh oder der gleichen benutzen muss und die bereits geöffneten popups nicht wieder geschlossen werden sondern einfach ohne probleme "immer wieder neue dazu kommen können"

die funktion / id hat zum test die werte der $row['message'] variable die durch die MySql query gefüllt wird

doch wenn ich das alles so mache wird einfach kein popup erzeugt

wenn ich alles in einer datei habe und OHNE ajax arbeite funktioniert die schleife und die ausgabe der popups ohne probleme

hoffe ich konnte mein problem verständlich erläutern und ihr könnt mir evtl helfen :-/