Status Balken während Programmaufruf

Hi

ich will folgendes vorhaben realisieren weiß aber nicht wie.

Es soll aus einer php seite eine Batch Datei mit bestimmten Parametern gestartet werden. Soweit ok.

Aber wie zeige ich so ein tolles „ajax bitte warten Icon“ solange die Batch Datei noch läuft???

Der user weiß ja sonst nicht wann das Programm durch ist.

Gruß
Alex

also soweit du irgendwie berechnen kannst, wie lange es dauert, dann kannst Du mit JavaScript dementsprechend was basteln…
Wenn Du dagegen Rückgaben hast und das php script immer darauf wartet, dann kannst Du das aber auch einfach nur mit verschiedenen divs, die du absolut positionierst regeln (so hab ich das bei einem Mailversand-script irgendwann mal gemacht).

wenn alles fertig ist kannst du weiter unten im html code noch die divs auf hidden setzen, auch wenn das nicht ganz so schön gelöst ist… :wink:

Grüße
Munich

Die dauer der Ausführung weiß ich nicht vorher. kann aber bis zu 4 std dauern(ist ein Datentransfer). Von daher darf nicht auf die Beendigung des Prozesses gewartet werden. aber wie mach ich das?
mit exec, system und proc_open würde das ja nicht gehen da die eine Rückgabe zurückgeben.

Könnte man irgendwie in einer schleife prüfen ob der Prozess noch läuft oder nicht?

sicher…
du musst halt nur bissl mitdenken *sfg*
es ist doch ein batch-script, oder?
dann erstellst Du einfach eine Datei „running.txt“ und fragst mit dem php script ab, ob es diese Datei (gerade) gibt.
Am Ende von deinem Script löschst du diese Datei dann wieder…
Man kann natürlich jetzt auch noch die Startzeit auslesen oder in das file schreiben um ein ungefähres Ende zu prognostizieren, aber das liegt alles an der Kreativität des Programmierers…

naja und die php Datei sollte sich ja eh neu laden und nicht ständig ihren loop durchlaufen, sonst kommt irgendwann ein verbindungstimeout - von daher mit html oder javascript die seite alle paar Minuten neu laden lassen…

no problem, oder?

ja ok haste recht. soweit hab ich nicht gedacht.

Könnt man das reloaden mit ajax machen?
Kenn mich mit ajax nicht aus.

hab da noch ein problem und zwar steht ja in dem script nun am anfang:
Echo %date% > running.txt

wenn ich die Batch manuell ausführe wird die Datei erstellt. Beim aufruf aus php jedoch nicht, warum?

hab da noch ein problem und zwar steht ja in dem script nun am
anfang:
Echo %date% > running.txt

wenn ich die Batch manuell ausführe wird die Datei erstellt.
Beim aufruf aus php jedoch nicht, warum?

Falls du unter Linux arbeitest:
Schreib mal in dein PHP-Script

system('./script.bat 2\>&1');

Dadurch spuckt system() nicht nur normale Ausgaben, sondern auch Fehlermeldungen aus. Eventuell fehlen dir Schreibrechte.

hab da noch ein problem und zwar steht ja in dem script nun am
anfang:
Echo %date% > running.txt

wenn ich die Batch manuell ausführe wird die Datei erstellt.
Beim aufruf aus php jedoch nicht, warum?

Falls du unter Linux arbeitest:

Ne ist ein Windows 2003 Server. Aber schon noch mit nem Apache.

Selbst wenn ich ein anderes Batchscript aufrufe welches die andere aufruft werden keine Textdateien erstellt.

kommt mir irgendwie spanisch vor.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ok nu hab ich’s.

Die text datei wird dort erstelt wo das php script liegt.
Hab den wald vor lauter Bäumen nicht gesehen -_-

nu hab ich eine php datei die sich alle 15sek neu lädt und prüft ob die Datei vorhanden ist.

danke für eure hilfe.
Hier noch mein Code in kurz.

reloading=function(timeSlap)
{
if(timeSlap>0) timeSlap–;
else location.reload();
}

<?php if(file_exists("batch/running.txt")){
echo "**Bitte warten... Der Transfer läuft bereits. Es kann kein weiterer Transfer ausgeführt werden. "; }else{ echo "Das Transferprogramm wurde beendet. Sie können nun einen neuen Transfer starten."; } ?\> > [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]**