<form.submit> mittels <href> mit variabler <action>
Iven Schubert
- javascript
0 Siechfred- php
0 Rouven0 Iven Schubert
Hallo,
ich brauche ganz dringend Hilfe für folgendes Problem:
Ich habe ein Formular (html/php), das durch eine Datenbank mit Inhalt gespeist wird. Der User hat die Möglichkeit die eingelesenen Daten manuell zu ändern und soll dann die Möglichkeit haben, die Daten (komplettes Fahrzeugangebot) an zwei Seiten zur PDF-Generierung zu senden:
1. über einen <href>-Link die Daten an die Seite "print-fzg.php" senden
2. über einen <href>-Link die Daten an die Seite "flyer1.php" senden
Natürlich könnte man das auch lösen über einen Submit-Button, der die Daten mittels "print-fzg.php?wert1=$wert1&wert2=$wert2&wert3=$wert3 ..." übersendet. Nur bei ca. 35 Variablen mit teilweise bis zu 2000 Zeichen ist das sehr umständlich und Fehleranfälig.
Meine Idee: Kann man mittels <href onclick=""> nicht den action-Parameter des Formulars ändern?
Meine Idee: Kann man mittels <href onclick=""> nicht den action-Parameter des Formulars ändern?
Könnte man, aber wozu? Mache zwei Submit-Buttons und programmiere eine serverseitige Fallunterscheidung.
Siechfred
Hello,
Könnte man, aber wozu? Mache zwei Submit-Buttons und programmiere eine serverseitige Fallunterscheidung.
...und eh jetzt die Anmerkung kommt "ich will aber, dass das wie ein Link aussieht": verwende CSS um die Rahmen, Erhöhungen, Schriften, Hintergründe etc. zu entfernen, dann sieht das Ding auch aus wie ein Link.
MfG
Rouven
Danke für deinen Tipp.
Ich werde das mal probieren....
Meine Idee: Kann man mittels <href onclick=""> nicht den action-Parameter des Formulars ändern?
Könnte man, aber wozu? Mache zwei Submit-Buttons und programmiere eine serverseitige Fallunterscheidung.
Siechfred
Hallo Siechfried
Danke für deren Tipp, leider klappt das nicht so ganz, wie ich mir das vorgestellt habe:
###########
<? $action = "0";
if (isset($submit2)) $action = "2";
if (isset($submit3)) $action = "3";
echo $action;
?>
<form action"<? if ($action == "0") echo "$PHPSELF";
if ($action == "2") echo "print-b2b.php";
if ($action == "3") echo "flyer.php"; ?>"
method="POST" name="form1">
###########
Also, der Button wird korrekt ausgelesen, nur das Verändern des Formulars geht nicht.
Danke für deren Tipp, leider klappt das nicht so ganz, wie ich mir das vorgestellt habe:
Weil du serverseitig versuchst, clientseitigen Code zu manipulieren. Das geht so nicht. Du sollst ja kein neues Formular generieren, sondern in Abhängigkeit vom Submit-Button PHP-Code ausführen. Also bspw. so:
if(isset($_POST['submit2']) {
include('script1.php');
}
elseif(isset($_POST['submit3'] {
include('script2.php');
}
else {
include('standard.php');
}
Je nach Submit-Button wird ein PHP-Script eingebunden, das dann mit den Formulardaten das macht, was der User geklickt hat. Übrigens, lies dir bitte auch die Hinweise zu register_globals durch.
Siechfred
Ich habe inzwischen eine einfachere Lösung gefunden:
<input type="submit" name="submit2" value="Angebot Drucken" onclick="this.form.action='print-b2b.php'" style="width:150;">
So spare ich mir das ganze auslesen und die Unterscripte. Wenn man jetzt noch den Button als Link ändern könnte, wäre das perfekt!
Danke für deine Hilfe!!
Ich habe inzwischen eine einfachere Lösung gefunden:
Aber keine bessere. Javascript darf *niemals* der Umsetzung elementarer Seitenfunktionen dienen, sondern allenfalls die Seitenbedienbarkeit erleichtern oder verbessern. Ein User ohne Javascript wird deine Seite so nicht benutzen können, da ihm der Zugang zum Druckscript verwehrt ist. Deine Lösung ist ein Musterbeispiel dafür, wozu man Javascript auf keinen Fall einsetzen sollte.
So spare ich mir das ganze auslesen und die Unterscripte.
Hallo?! Du hast doch schon zwei Scripte.
Wenn man jetzt noch den Button als Link ändern könnte, wäre das perfekt!
Schöne Formulare mit (X)HTML und CSS
Siechfred