Prototype Window: Confirm soll Aufruf der Seite verhindern...

Mit dem o.g. Beispiel gehen meine POST Daten verloren, da ich die Seite nicht über das Formular und somit mit den Post Daten aufrufe, sondern über PW, welches aber dann die Daten nicht beinhaltet, da es ein einfacher Aufruf ist, ohne POST Daten...

Jetzt stehe ich wahrscheinlich auf der Leitung...
Aber ich würde einfach versuchen die Daten vom Formular bauen lassen, nicht abschicken sondern in eine Variable schreiben, das Ganze dem Dialog.confirm mitgeben und fertich.
 
Also nochmal genauer.
Ich möchte PW nur für die Confirm Abfrage.Weils halt schöner aussieht.
Im Prinzip siehts so aus:

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-16be-with-bom">
	<title>BEispiel</title>
</head>
<body>
<form action="test.dll" method="POST" >
<input name="ZE_ausweis" id="ausweis" type="hidden" value="11223344" onclick="return confirm('Ausf&uumL,hren?')">
<input name="time" id="zeit" type="hidden" value="Clientzeit" onclick="return confirm('Ausf&uumL,hren?')">
<input name="ZE_KO" id="kommen" type="submit" value="Kommenbuchung" onclick="return confirm('Ausf&uumL,hren?')">
<input name="ZE_GE" id="gehen" type="submit" value="Gehenbuchung" onclick="return confirm('Ausf&uumL,hren?')">
<input name="ZE_AB" id="Abfrage" type="submit" value="Kontoabfrage" onclick="return confirm('Ausf&uumL,hren?')">
</form>

</body>
</html>

So. Je nachdem was geklickt wird kann ich das in der DLL auswerten.
Zb:ZE_GE weiß ich er will ne Gehenbuchung machen mit der AUsweisnummer usw. das alles brauche ich.
Mit dem Confirm halte ich das Senden an die DLL auf, bis er ja oder nein geklickt hat.
KLickt er Cancel, dan wird es angealten und es wird nichts an die DLL geschickt, kann ja sein daß der User falsch geklickt hat und ws anderes möchte.

Eben diese wollte ich mit Prototype nachbauen.
Das Problem ist, daß das Confirm von PW nicht das Senden an die DLL aufhält, sondern sendet während die Confirm Box erscheint.

MIt Euren Vorschlägen, kann ich das zwar prima aufhalten,aber meine Formular Daten sind dann nicht vorhanden, da diese im Script ja nicht habe, da die DLL im Script direkt aufgerufen wird.

And thats the problem hierbei.

Mit PW kann man viele tolle sachen machen und ich würde es gerne umfassen einsetzen,d.h. ich möchte kei Mischmasch mit anderen Bibliotheken.
Daher stellt sich mir die Frage ob das so mit PW geht...

PS: ob das confirm hier so richtig ist, ist zwetranngig es dient nur zur veranschaulichung.
 
Das geht sicher. Aber Heute werde ich das nicht mehr schaffen, die Bar ruft. :)
 
naja das schöne daran ist bisher, daß es auch funktioniert, wenn jemand Javascript deaktiviert hatte.
Ich möchte das eigentlich machen ohne mords die Daten vom einen Javascript zum anderen schicken, da wäre der Aufwand sicherlich zu groß.
Ganz einfach so wie das normale confirm und gut ist:)


Dann mal viel Spaß in der Bar:)
 
Na, confirm ist ja schon Javascript. Darauf kommt' s wohl auch nicht mehr an.

Haste auch wieder recht.
Ich denke Olivetti hat verstanden um was es mir geht oder?
Aber morgen ist auch noch ein Tag...schlaft schön:muede:
 
Letzte Idee
Code:
.
.
.
<script language="javascript" type="text/javascript">
function openConfirm (myForm) 
{
	Dialog.confirm("Ausf&uuml;hren?",
		{top: 10,
		width:250,
		className: "alphacube",
		ok:function(win) {myForm.submit(); return true;}
		});
}
</script>
.
.
.
<form action="test.dll" method="POST">
<input type="hidden" name="irgendwie" value="irgendwas" />
<script type="text/javascript" language="javascript">document.write ('<input type="button" name="senden" value="Aufruf" onclick="openConfirm(this.form);return false;" />')</script>
<noscript><input type="submit" name="senden" value="Aufruf" /></noscript>
</form>
.
.
.
 
Zuletzt bearbeitet:

Das ist super und funktoniert fast:)
Das Problem hierbei ist,daß der Button auf den ich klicke nicht mitgeliefert wird.

Also in diesem Falle sollte ich in den übertragenen Formulardaten u.a. ...name=Aufruf bekommen, damit ich auswerten kann, was der User geklickt hat, sonst funktionierts nicht....
Es gibt ja noch mehr Buttons und ich muss so auswerten um die angeklickte Funktion auszuführen.
In diesem Fall werden aber nur die "hidden" Formulardaten bis zum senden Button mitgelifert, nicht aber die Daten des senden Buttons an sich...

Also so siehts aus:

Code:
<FORM ACTION="testl.dll" METHOD="POST" name="wterm_menue">
<INPUT TYPE="hidden" NAME="weiter" VALUE="Tw==" >
<INPUT TYPE="image" NAME="b_EINST" SRC="../images/Einstellungen.jpg" id="EINST" VALUE="b_EINST" class="tooltip html_tt_10">
<INPUT CLASS="UHRZEIT" TYPE="text" NAME="HOSTTIME" READONLY>
<INPUT TYPE="submit" NAME="b_KO" SRC="../images/KO.jpg" id="KO" VALUE="b_KO"  class="tooltip html_tt_1" onclick="openConfirm(this.form);return false;">
<INPUT TYPE="image" NAME="b_GE" SRC="../images/GE.jpg" id="GE" VALUE="b_GE"  class="tooltip html_tt_2" onclick="openConfirm(this.form);return false;">

....uns noch viel mehr buttons...

Anhand vom input Namen b_KO b_GE , die normalerweise mitgeschickt werden, werte ich die Aktion aus..geht hier nicht, da das nicht mitgeschickt wird...
 
Zuletzt bearbeitet:
Ich schätze mla ich gebe auf.
Führe ich da script unter Linux/Konqueror aus, so stürzt dieser ab.
Hat ja keinen Sinn, so kann ich das keinem Kunden verkaufen....
 
Das ist super und funktoniert fast:)
Das Problem hierbei ist,daß der Button auf den ich klicke nicht mitgeliefert wird.
Das sollte jetzt auch nur ein Testbeispiel sein, ließe sich aber einfach erweitern, indem man der Confirm-Funktion einen zweiten Parameter mitgibt, mit document.write ein hidden field anfügt mit dem value 0 (name genauso wie der noscript button) und dann bei confirm: ok über den zweiten Parameter vor dem submit das entsprechende hidden-field auf 1 setzt; dann bekommst du über post den gewünschten wert mitgeliefert.
 
  • Gefällt mir
Reaktionen: Mondmann
Hmm..aha ok, das werde ich mal so ausprobieren.
Ich dachte auch schon dran, der Funktion den 2. Parameter mitzugeben, wusste aber nicht recht wie ich das denn der Form mitschicken kann.

Vielen Dank mal ,werd ich gleich testen:)

Grüße Mondmann
 
Also meinst du konkret so:?
(Das mit dem 2.Argument kann ich ja dann noch machen, erstmal so:)

Code:
function openConfirm(myURI) {
Dialog.confirm("Abfrage. "+myURI+" wirklich aufrufen?",
{top: 10,width:250,className: "alphacube",ok:
function(win)
{

document.wterm_menue.senden_los.value="1";
document.wterm_menue.senden_los.name="b_GE";

myURI.submit();
 return true;}

 });}

Ja und das dann über die Argumente, dann gehts.
Vielen Herzlichen Dank für die Hilfe, werd jetzt mal noch ausgiebig testen...
 
Zuletzt bearbeitet:
Also meinst du konkret so:?
Im Prinzip schon - nur der Einfachkeit halber mal angedeutet
Code:
.
.
.
<script language="javascript" type="text/javascript">
function openConfirm (myForm, myElement) 
{
	Dialog.confirm 
	(
		"Ausf&uuml;hren?",
		{
			top: 10, width:250, className: "alphacube",
			ok:function(win) { myForm[myElement].value=1; myForm.submit(); return true; }
		}
	);
}
</script>
.
.
.
<form action="test.dll" method="POST">
<script type="text/javascript" language="javascript">
document.write ('<input type="button" value="Aufruf" onclick="openConfirm(this.form, \'b_GE\');return false;" /><input type="hidden" name="b_GE" value="0" />');
</script>
<noscript>
<input type="submit" name="b_GE" value="Aufruf" />
</noscript>
</form>
.
.
.
Ob value ohne Javascript "Aufruf" liefert ist ja egal, wenn man nur danach fragt, ob überhaupt ein Wert übergeben wurde.

<klugsch...mode>
Wärs in deiner Konstruktion nicht ökonomischer die Buttons als Array zu übergeben name="formular[b_GE]". Dann kommt in der test.dll immer $_POST['formular'] an, und es lässt sich über switch (key ($_POST['formular'])) leicht auswerten, wo die Reise hingehen soll.
</klugsch...mode>
 
Zuletzt bearbeitet:
Dein <klugsch...mode> ist interessant und werde ich mir mal überlegen.

Jetzt hätte ich da noch ein Problemchen.
Unsere Kunden rufen eine Art Journal ab, welches diese auch ausdrucken wollen.
Bisher ja einwandfrei mit CSs usw.
Wenn ich das nun mit PW machen möchte also das, was gedruckt werden soll in einem MOdal Fenster oder sowas erscheint, dann kann ich dieses nicht drucken.
Selbst wenn ich das Fenster dann ganz groß maximiere, wird alles verschoben und es wird alles gedruckt,also auch das drunterliegende Fenster.

Gäbe es da ne Möglichkeit von dem Überlagernden Fenster aus zu drucken, oder zumindest so, daß das auch wirklich vollständig überlagert wird und wenn ichs maximiere auch nur dieses ausgedruckt wird?


Edit: Ganz abgesehen davon funktioniert das Ganze mal wieder nicht im IE.
Es kommt Fehlermeldung: offsetTop ist null oder kein Objekt, Zeile 3092


Prima echt der macht mir doch immer wieder Freude.
Ich bekomme den blau-durchscheinenden Screen,aber keine Buttons. Ich muss dann aktualisieren, damit ich weitermachen kann..
Son Käse
Edit1: Ich habs,es war ein falsche Doctype.

Aber ich kann es trotzdem nicht einsetzen, da der Konqueror unter Ubuntu/KDE 3.5.5 abstürzt. Nicht verkäuflich das Ganze.

Grüße Mondmann:mad:
 
Zuletzt bearbeitet:
Das mit dem Drucken würde mich auch interessieren, geht aber hier nicht, weil es ja sozusagen ein Layer ist und alles andere nur "ausgefadet" wird. Drucken wird wohl nur im neuen Fenster oder iframe gehen.

Oje, der Konq. Muss der denn sein?
 
Ja der Konqueror muss sein, da die Software ja Plattformunabhängig sein soll und wir somit mit jedem OS und mit jedem Browser rechnen müssen.
Aber alleine das schließt ja schon Prototype Window komplett aus.
Aber ich denke man darf heutzutage einigermaßen aktuelle Browserversionen als Voraussetzung angeben.
 
Das mit dem Drucken würde mich auch interessieren, geht aber hier nicht, weil es ja sozusagen ein Layer ist und alles andere nur "ausgefadet" wird.
Hat mich auch mal interessiert, auch wenn ich es bestimmt nicht einsetzen werde, und "ausgefadet" ist eigentlich das Stichwort.
Bleibe mal am Beispiel Confirmbox. in der Druckvorschau sollte also nur "Ausführen?" stehen und sonst nichts.
Code:
<style type="text/css" media="print">
div#body, .overlay_alphacube, .alphacube_buttons,
.alphacube_nw, .alphacube_n, .alphacube_ne, .alphacube_w, .alphacube_e, 
.alphacube_sw, .alphacube_s, .alphacube_se, .alphacube_sizer  
{ display: none; }
.alphacube_content
{ border: 0; background: #FFF; }
</style>
...
<body>
<div id="body">
...
<p>„Alles, selbst die Lüge, dient der Wahrheit - Schatten löschen die Sonne nicht aus.” Franz Kafka</p>
</div>
</body>
Habs nur in Safari und Vorschau getestet. Die Text-Position müsste man noch verändern, dazu hatte ich aber keine Lust mehr.

Großer Nachteil: im Beispiel steht das print stylsheet auf der Seite, mit oder ohne Confirmbox, ob man das dynamisch beim Klick auf den Button laden kann, weiß ich nicht - im ungünstigsten Fall ist die Druckseite also leer.

Allgemeiner Nachteil am Beispiel Confirmbox: Wenn ich nach einem submit mit der Backtaste zurückgehe, ist die Confirmbox eingeblendet, reagiert aber nicht auf Klicks.

Ist doch sehr wackelig, und ob der Aufwand lohnt?
 
Zuletzt bearbeitet:
Zurück
Oben Unten