• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

1 Formular 2 Buttons 2 Addressen?

HoRRoRTeRRaN

Guest
Also ich habe ein Problem:
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 ? :-)
 
Mitglied seit
03.08.2002
Beiträge
3.257
Reaktionen
14
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>
 
Mitglied seit
02.08.2002
Beiträge
2.781
Reaktionen
0
Es ist aber definitiv eleganter, das über eine zwischengeschaltete php-seite zu lösen - es gibt immer benutzer, die js deaktiviert haben...
 
Mitglied seit
03.08.2002
Beiträge
3.257
Reaktionen
14
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).
 
Mitglied seit
02.08.2002
Beiträge
2.781
Reaktionen
0
du kannst doch auch einfach im aufgerufenen php-script abfragen welche button gedrückt wurde und danach unterscheiden.
 
Mitglied seit
03.08.2002
Beiträge
3.257
Reaktionen
14
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)".
 
Mitglied seit
02.08.2002
Beiträge
2.781
Reaktionen
0
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.
 

HoRRoRTeRRaN

Guest
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 ;)
 
Mitglied seit
03.08.2002
Beiträge
3.257
Reaktionen
14
Ö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 ...
 
Mitglied seit
03.08.2002
Beiträge
3.257
Reaktionen
14
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").innerHTML = header; //Beschreiben der Daten ins Popup - in nen Element mit der id="divheader"

usw.
 
Mitglied seit
02.08.2002
Beiträge
2.781
Reaktionen
0
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)
 

HoRRoRTeRRaN

Guest
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)">
thx für eure hilfe :)

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 :D
funktioniert jedoch nicht °°
wodran liegts, wie beheb ichs?
 
Oben