Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du musst Dir klar machen: PHP läuft auf dem Server und JavaScript beim Besucher der Webseite. Wenn Du also möchtest, dass ein JavaScript direkt aufgerufen wird, sobald die Seite an den Besucher gesendet wurde, dann solltest Du das Skript im onLoad-Event-Handler des body-Elements aufrufen:
ich habe eine Seite auf der man ein Bild hochladen kann.
Wenn das Bild erfolgreich hochgeladen ist kommt eine Nachricht "Bild wurde erfolgreich hochgeladen".
Diese Nachricht soll der "Hochlader" 5 Sekunden sehen, danach soll automatisch auf eine andere Seite weitergeleitet werden.
Dies wollte ich über:
Code:
<script type="text/javascript">
function zeit(){
window.setTimeout("weiterleiten()",5000);
}
function weiterleiten(){
self.location.href="link";
}
</script>
oder so ähnlich verwirklichen.
Aber die function soll erst gestartet werden wenn das PHP-Script die Bilddatei erfolgreich gespeichert hat also nach dem PHP-Script und nicht wenn der User den Sendebutton drückt.
Das kannst du doch auch nur mit PHP machen. Dazu brauchst du doch kein JavaScript - zumindest, wenn die Nachricht im "Hauptbrowserfenster" angezeigt werden soll, was ich aber sowieso besser finde als in einem Pop-up.
Nachdem das Bild hochgeladen wurde, wird per header() auf die HTML-Seite mit dem Text "Bild erfolgreich hochgeladen" weitergeleitet. Diese leitet per meta-Element nach fünf Sekunden auf deine gewünschte Datei um.
Wenn eh weitergeleitet wird, dann fände ich es sogar besser, wenn nach erfolgreichem Hochladen kurzzeitig eine fette Meldung in der Mitte der Seite kommt - ähnlich wie teilweise bei vBulletin.
Aber wenn du es auf derselben Seite haben willst, funktioniert es doch fast genauso.
Du reservierst einen Platzhalter im Kopfbereich der HTML-Datei und je nachdem, ob das Bild erfolgreich hochgeladen wurde, ersetzt du den Platzhalter mit dem meta-Element oder mit einem Leerstring - also quasi nichts.
Aber für's Hochladen wird doch ein anderes (oder das selbe, aber in einem anderen Zweig) PHP-Script aufgerufen. Und dort kann das meta Refresh gesetzt werden.