hi,
Hallo Hotti,
Da ich mit meinem "Latein" am Ende bin, hier der Post und die Frage an Euch, ob ihr eine Idee habt.
Na Du musst das schon an der richtigen Stelle tun, verstehe den asynchronen Request.
Du hast
xhr.onreadystatechange = rx; // <- EmpfangsfunktionInnerhalb der Empfangsfunktion wird xhr.readyState und xhr.status abgefragt. Wenn xhr.status == 200 wird die callback-Funktion gefufen. Hierzu _muss_ es im Scriptbereich Deiner Datei eine callbackfunktion geben und: alles was nach Erhalt der Response gemacht werden soll, muss innerhalb der callback-Funktion passieren.
Summa:
Request senden, Gauge auf "Anfrage läuft" setzen
Response flattert rein, es greift die callbackFunktion. Hier drinne setzt Du die Gauge auf "OK, hab alles".Gauge: Ein fiktives Objekt, was dem Besucher den Stand der Dinge anzeigt.
Auf meiner Site findest Du massenhaft Beispiele zu Ajax und auch ein kleines aber feines Framework.
Es ist natürlich genauso wie Du sagst:
Das "Zurückändern" des Cursors muss natürlich in der Callback-Funktion stattfinden. Dann wird dieser auch erst dann auf "default" zurück gesetzt, wenn der Server xhr.status == 200 meldet. Das funktioniert prima. Ursprüngliches Problem gelöst ;-)
Was ich aber mit Ajax nicht hinkriege ist, dass das aufgerufene PHP-Skript die fertige Excel-Datei an den Browser sendet und sich ein Browserfenster öffnet, dass fragt, ob die Excel-Datei gespeichert oder geöffnet werden soll.
Mit dem ursprünglichen JavaScript-Code, d.h. ohne Ajax, ging das:
window.location.href = "../Verzeichnis/datei.php";
Wie kann ich das mit dem Dateiaufruf via Ajax erreichen?
Das PHP-Skript wird zwar aufgerufen und abgearbeitet, aber die Audgabe läuft irgendwie in Leere.
Was mache ich da falsch?
Hotti
Olli