![]() |
|
|||||||
| Registrieren | Hilfe | Benutzerliste | Kalender | Avatare | Banliste | Clanforum anfordern | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#1
|
|
Sanitäter
|
1 Formular 2 Buttons 2 Addressen?
![]() ![]() Ich weiß nicht wie ich es anstellen soll, dass der INhalt eines Formular an 2 verschiedene Addressen geschickt werden kann; Drücke ich auf Button A soll es an Addresse xy.php geschickt werden, drücke ich auf Button B soll es an yx.php geschickt werden. Das ganze soll ohne eine dazwischen hängende Datei funktionieren. GM meinte das ginge mit Javascript und onClick, ka, ich kann Javascript eigentlich garnicht. Könntet ihr mir da helfen ? :-)
__________________
. |
|
|
|
|
|
#2 |
|
Belagerungspanzer (Belagerungsmodus)
Registriert seit: Aug 2002
Beiträge: 2.927
|
gibt mehrere Möglichkeiten, mal hier eine:
Code:
<script type="text/javascript">
function submitTo(theUrl)
{
var myForm = document.getElementById('myForm');
myForm.action=theUrl;
myForm.submit();
}
</script>
<form id="myForm" ...>
...
<input type="button" onClick="javascript:submitTo('dahin.php')" value="dahin abschicken" />
<input type="button" onClick="javascript:submitTo('dorthin.php')" value="dorthin abschicken" />
</form>
|
|
|
|
|
|
#3 |
|
Dunkler Archon
Registriert seit: Aug 2002
Beiträge: 2.781
|
Es ist aber definitiv eleganter, das über eine zwischengeschaltete php-seite zu lösen - es gibt immer benutzer, die js deaktiviert haben...
|
|
|
|
|
|
#4 |
|
Belagerungspanzer (Belagerungsmodus)
Registriert seit: Aug 2002
Beiträge: 2.927
|
mal ne dumme frage:
warum wird eigentlich javascript hier in der codeanzeige in java script getrennt? habs eigentlich zusammengeschrieben. Ansonsten will ich hier keine JS Diskussion auslösen. Ne javascriptfreie Fallback-Variante ist sicher schön (man kann z.B. ja ne feste action anbieten, nen Submitbutton platzieren, die 2 Buttons invisible machen oder erst mit JS hinschreiben und wenn js aktiviert ist, den standard Submitbutton ausblenden und dafür die 2 Buttons einblenden).
|
|
|
|
|
|
#5 |
|
Dunkler Archon
Registriert seit: Aug 2002
Beiträge: 2.781
|
du kannst doch auch einfach im aufgerufenen php-script abfragen welche button gedrückt wurde und danach unterscheiden.
|
|
|
|
|
|
#6 |
|
Belagerungspanzer (Belagerungsmodus)
Registriert seit: Aug 2002
Beiträge: 2.927
|
Also ich finde JS jetzt nicht unelegant, nur weil einige Leute es abschalten. Dass es wegen Pop-Ups oder nervigen DHTML-Werbungen deaktiviert wird, ist eigentlich sehr schade, da man gerade im Usability-Bereich sehr viel mit reissen kann.
Ich baue eigentlich immer gerne mit js Unterstützung und halt ner funktionierenden Fallback-Version, auf die sich jetzt aber nicht so konzentriert wird. Dass JS z.B. keine endgültige Validation von kritischen Formulardaten übernehmen sollte, ist klar. Aber trotzdem ist es nett, wenn man bei der Ausfüllung eines Formulares direkt live eine "Eingabe ist ok / nicht ok" Anzeige zu sehen bekommt, anstatt nach dem Abschicken eine neuen Seite mit "Ihre Eingaben war nicht korrekt, bitte überprüfen Sie..." oder "der nickname ist bereits vergeben (kann man mit nem xmlRPC ja auch direkt überprüfen)". |
|
|
|
|
|
#7 |
|
Dunkler Archon
Registriert seit: Aug 2002
Beiträge: 2.781
|
jo auf jeden fall - ich versuche meist die volle formularfunktion gänzlich ohne js zu realisieren (validierung sovieso) - danach kann man gut zusätzliche sachen der benutzerfreundlichkeit per js anbieten
das gleiche gilt ja im prinzip für ajax funktionalitäten - erst traditionell entwickeln und danach ajax aufsetzen. |
|
|
|
|
|
#8 |
|
Belagerungspanzer (Belagerungsmodus)
Registriert seit: Aug 2002
Beiträge: 2.927
|
Was für ne Ajax Engine benutzt eigentlich?
Ich hänge irgendwie noch an jpSpan, es gibt aber sicherlich mittlerweile bessere Engines (http://ajaxpatterns.org/PHP_Ajax_Frameworks), nur habe ich irgendwie nicht so den Elan, jetzt alle durchzutesten .
|
|
|
|
|
|
#9 |
|
Sanitäter
|
erstmal großes danke
![]() nun noch warum keine php datei zwischengeschaltet sein darf: die funktion brauch ich für nen Newsscript, für nen "Preview" button. Wenn man auf den klickt soll das was bis jetzt geschrieben wurde angezeigt werden aber die seite soll natürlich weitererhalten bleiben, preview wird dann mit popup aufgerufen. Wär da was zwischengeschlatet wär die originalseite verlorn und man müsste ers wieder rumklicken bis man da ist, das is kacke wenn man kleine fehler in der news findet und sie eben rauskickenw ill ![]() Außerdem ist das newsscript nur unseren Newsschreibern zugängig und die ham kein problem mit JS :-) danke danke
__________________
. |
|
|
|
|
|
#10 |
|
Belagerungspanzer (Belagerungsmodus)
Registriert seit: Aug 2002
Beiträge: 2.927
|
Öh, komischer Grund. Du willst nen Popup öffnen, an dem dann die post Daten übermittelt werden?
Dazu ist dann auch noch etwas weiteres JS erforderlich ... |
|
|
|
|
|
#11 |
|
Sanitäter
|
inwiefern? tut mir leid kann JS halt nicht
__________________
. |
|
|
|
|
|
#12 |
|
Belagerungspanzer (Belagerungsmodus)
Registriert seit: Aug 2002
Beiträge: 2.927
|
Naja, musst halt zuerst das Fenster per window.open() erstellen und dann zusehen, dass du die Daten da reinbekommst.
Per get-Aufruf wird es vermutlich nicht machbar sein, da einfach son Text dafür zu lang ist (get kann glaube ich nur 255 Zeichen - bin mir aber da jetzt nicht sicher, können auch n paar mehr sein). Am Besten ist es wohl, die Elemente dann direkt zu beschreiben. So a la var win = window.open("preview.php","width=200,..."); Dann wars glaube ich: var contentcontainer = win.contentWindow.document; um an den content (body bereich) zu gelangen, bin mir aber gerade nicht ganz sicher. Eventuell muss noch .body hinter, vielleicht reicht win als Variable auch schon aus. Müsste man probieren ![]() und dann var header = document.getElementById('inputHeader').value // Daten ausm Formular contentcontainer.getElementById("divheader").inner HTML = header; //Beschreiben der Daten ins Popup - in nen Element mit der id="divheader" usw. |
|
|
|
|
|
#13 | |
|
Sanitäter
|
Zitat:
__________________
. |
|
|
|
|
|
|
#14 |
|
Dunkler Archon
Registriert seit: Aug 2002
Beiträge: 2.781
|
ok, wenn du ehh eine neues fenster öffnen willst, dann kannst du es auch komplett über javascript machen, da du nur so neue fenster öffnen kannst. eine bessere möglichkeit für die vorschau ist imo aber den content über der eingabemaske anzuzuzeigen (wie hier im forum) das läßt sich dann super einfach ohne javascript lösen. der einzige vorteil eines extrafenster wäre, dass man sozusagen liveupdates zeigen kann. dafür sollte sich das fenster den content aber selbst aus dem formular holen (geht auch per javascript)
|
|
|
|
|
|
#15 |
|
Sanitäter
|
so ich habs jetzt gelöst bzw habe nochmal hilfe bekommen
:Code:
<script type="text/javascript">
function preview(frm) {
frm.action='preview.php';
var fensterchen=window.open('','neuFenster');
frm.target='neuFenster';
frm.submit();
}
</script>
Code:
<input type="submit" value="Post"> <input type="button" value="Preview" onclick="preview(this.form)"> ![]() edit: hmm einen kleinen fehler hab ich noch, hat aber glaub weniger mit Javascript zutun, eher PHP: Wenn ich in die Textbox zB "GG's" schreibe und das dann ausgebenw ill in der Preview datei , wird "GG\'s" ausgegeben. Das gleiche hatte ich bei " "xy" ", jedoch konnte ich das mit $text = str_replace("\\\"","\"",$text); umgehen bzw beheben. $text = str_replace("\\\'","\'",$text); <--- da sollen normal 3 \ hin, bzw beim 2. 1 \, genau wie bei " , jedoch macht das forum das net ![]() funktioniert jedoch nicht °° wodran liegts, wie beheb ichs?
__________________
. |
|
|
|
|
|
#16 |
|
Dunkler Archon
Registriert seit: Aug 2002
Beiträge: 2.781
|
stripslashes
|
|
|
|
|
|
#17 |
|
Sanitäter
|
danke danke, kann geschlossen werden
__________________
. |
|
|
|
![]() |
|
||||||
| Themen-Optionen | |
| Ansicht | |
|
|









