Hallo Ajax Community,
ich bastel mit einem Kumpel gerade an einer Website zum Schiffe versenken spielen, basiernd auf JS/AJAX. Damit beim Aktualisieren keine Schüsse verloren gehen basteln wir an einer Funktion die onLoad aufgerufen wird und mittels Request die Schüsse setzt. Das ganze sollte mit einer while-Schleife für jedes Feld durchlaufen. Anhand Firebug sehe ich, dass er die Schleife auch tatsächlich so oft durchläuft. Der Request selbst mit der Interpretation wird aber nur beim letzten mal tatsächlich ausgeführt. Die Daten werden aber jedesmal per echo über XML aus dem php-Script übergeben. Er fängt nur nichts damit an. Woran kann das liegen? Mach ich irgendwas falsch?
Zur besseren Bearbeitung hänge ich auch mal den Code an.
Dies hier ist die Funktion die beim Reload die Schüsse wieder setzt:
[CODE]function reloadShoots(){
var i = 0;
while(i als XML-Dokument
var xmlDoc = req.responseXML;
// Namen aus dem XML-Dokument herauslesen
var id = xmlDoc.getElementsByTagName(‚id‘)[0].firstChild.nodeValue;
alert(" irgendwas");
var content = xmlDoc.getElementsByTagName(‚content‘)[0].firstChild.nodeValue;
//var event = xmlDoc.getElementsByTagName(‚event‘)[0].firstChild.nodeValue;
// Namen in die Felder schreiben
document.getElementById(id).style.backgroundImage = content;
//document.getElementById(‚event‘).innerHTML = event;
}
break;
default:
break;
}
}[/CODE]
Das im Code stehende alert(" irgendwas") diente zum Überprüfen.
Vor var id … kommt es nach jeder Schleife. Nach var id … kommt es nur noch zum Schluss. Also muss hier irgendwo der Fehler liegen, oder? Genauer konnte ich es nicht eingrenzen.
Und das hier ist der Inhalt der angesprochenen php-Datei:
[CODE]<?php include("_settings.php");
include("_connect.php");
include("_functions.php");
header(‚Content-Type: text/xml; charset=utf-8‘); // sorgt für die korrekte Kodierung
header(‚Cache-Control: must-revalidate, pre-check=0, no-store, no-cache, max-age=0, post-check=0‘); // ist mal wieder wichtig wegen IE
$min = $_POST[‚min‘];
$id = „“;
$content = „“;
$result = mysql_query(„SELECT * FROM shoots WHERE game_ID = $gameID AND user_ID = $user2_ID ORDER BY shoot_ID DESC LIMIT $min,1“);
while($data=mysql_fetch_array($result)){
$id = $data[‚field‘];
$hit = $data[‚hit‘];
$loop = true;
switch($hit) {
case „1“:
$content = ‚url(gfx/bg_1_X.jpg)‘;
break;
case „0“:
$content = ‚url(gfx/bg_1_O.jpg)‘;
break;
default:
break;
}
}
echo „<?xml version=\"1.0\" encoding=\"utf-8\"?>\n“;
echo „\n“;
echo " „.„M_“.$id.“\n";
echo " „.$content.“\n";
echo „\n“;
?>[/CODE]
Die Domain lautet http://seeschlacht.co.de . Firebug gibt auch keine Fehler aus, nur das was in der PHP als echo steht.
Würd mich über jede Antwort freuen, denn wir stehen hier momentan vor einem Rätsel.
Wir beide erlernen JS/AJAX auch erst gerademal seit einer Woche, also bitte nicht in totale Fachsprache verfallen beim Antworten .
Danke schonmal an alle!!
Gruß
Lunacy