| |
Nach "Confirm Alert" Program verlassen |
|
 |
 |
 |
| |
Hi, kann man nach dem man mit confirm eine Abfrage gemacht hat, zusätzlich zu dem history.back(); aktuelle Script verlassen?
Bsp. ich frage ab ob ein Datei schon verarbeitet worden ist und möchte nur wenn man cofirmt weiter program laufen lassen, ansonsten möchte ich einfach nur auf vorherige seite gehen ohne das weitere code ausgeführt wird:
... vorher PHP Code.... Check = confirm("Die Datei/en: " + filename + " wuerde/n schon verarbeitet! Verarbeitung trotzdem fortsetzen?"); if (Check == false) { history.back(); }
... nachher kommt wieder PHP Code --> soll aber nur dann weiter ausgeführt werden wenn confirm bestätigt wird
Das funktioniert so nicht, man "springt" zwar schon auf vorherige Seite aber in Hintergrund wird Code der danach kommt weiter ausgeführt. Wie kann man das (besser - oder überhaupt) machen?
DANKE!!! |
|
|
 |
 |
 |
| |
Antworten |
|
| |
1. PHP arbeitet nur bevor der User die seite zu sehen bekommt ... müsstest die seite halt nochmal abschicken, anders ist das nicht möglich....
2. return false oder auch true...
3. HI
Php läuft am Server und javascript (confirm) läuft am Client.
Wenn nun dein script meint, es muss sich eine Bestätigung des Benutzers holen, dann erzeugst du mit php den Javascript code für das confirm und beendest dein Php script.
Bestätigt der Benutzer die Frage mit OK (confirm liefert TRUE), dann setzt du self.location="deinscript.php?confirm=yes"; und somit fängt dein script von vorne an und "weiss" jetzt, dass diesmal der user nicht mehr zu fragen ist.
4. DANKE!!! 
5. SORRYYYY (, aber doch komme ich nicht "ganz" so weiter...
Ich möchte namlich nicht den script ("deinscript.php") von vorne anfangen, weil mir dabei einige andere Werte, die ich aus dem vorherigen Formular übergebe "verloren" gehen. Dann habe ich zwar $_POST['confirm'] Wert aber alle andere nicht mehr. Ich muss, nach dem Confirm gedruckt ist, einfach weiter machen können (das geht sogar aber ohne das ich Einfluß darauf habe ) bzw. GANZ abrechen wenn ich nicht weiter machen will.
Das heißt ich muss irgendwie "versuchen" den Confirm Wert gleich weiter an php zu geben und die auch unter Umstände abfragen zu können, weil, nur wenn es "ja" heißt geht es weiter.
Aber das funktioniert nicht so einfach, oder? Javascript und php "vertragen" sich angeblich nicht so gut!?
Ich kann mir aber auch nicht vorstellen, dass gar keine Lösung dafür gibt!?
6. Hi
Dann speichere die Formulardaten in einer SESSION.
7. Javascript läuft auf dem client, PHP auf dem Server. Was für einen laien relativ unwichtig tönt, musst du dir beim programmieren genau einprägen. Der ablauf deines scripts geht so: (nicht ganz korrekt, aber für den technischen Ablauf stimmts) 1. Der Client schickt eine Anforderung an den Server, die Seite des Formulars zu senden. 2. Der Server sendet die Daten in form von HTML und evtl. CSS und evtl. JS an den client. Der client wertet das HTML, das CSS und das JavaScript aus, und gibt das ganze am bildschirm aus. 3. Der Server hat jetzt erstmal nichts zu tun. Wenn der benutzer(der am client sitzt) nun einen link, oder in deinem Fall den Submitbutton drückt, sendet der Client die daten wieder an den Server, an das script welches im action-attribut angeben wurde. 4. Der server erhält die Anforderung, das script auzuführen, und erhält auch einige zusatzdaten, wie formulareingaben(im array $_POST) und daten über den Browser usw. Mit diesen Daten kann nun in dem script gearbeitet werden. Das script wird durchgearbeitet, und das resultat wird wieder an den client gesendet. Dieser wertet wieder aus, und gibt am bildschirm aus. Der Server(PHP) hat jetzt wieder nichts zu tun, und könnte sogar vom kabel genommen werden.
Es bestehen zwei möglichkeiten, dein Problem zu lösen: Entweder, du lädst die Seite nochmals, oder du greiffst auf Ajax zurück, was für dich aber viel zu kompliziert sein dürfte!
8. Du musst die Formulardaten zwischenspeichern. Eine Session, wie von osterix vorgeschlagen, ist da doch ne gute Lösung.
9. Hallo zusammen und danke noch mal. Ich habe das Problem jetzt doch so gelöst, dass ich die (aktuelle) Seite noch mal aufrufe und dann den $_POST['confirm'] abfrage. Wenn der auf "nein" steht verlasse ich Seite sofort.
Eine Session wollte ich nicht einbauen, weil Programm schon existierte (nicht von mir ) und ich wollte nicht alles umbauen sondern nur an paar Stellen kurze Änderungen vornehmen (unter anderen auch diese Abfrage) ohne viel ändern zu mössen, und somit habe ich jetzt eine optimale Lösung.
Es ist klar, dass JavaScript auf dem Client läuft und PHP auf dem Server, aber es ist manchmal "schwierig" dies in praxis zu umsetzen. Da hat mir einfach die Antwort von bieler diesen Kick gegeben ), natürlich aber auch alle andere Tipps für die ich noch mal herzlich bedanken möchte!!! ).
Übrigens, diese Forum ist TOP!!! Möchte gerne mein Lob aussprechen, da ich auf diese Wege schon mehrere Lösungen für meine Programme bekommen habe! WEITER SO!
|
|
|