2 Senden Buttons nebeneinander

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Reality
Mitglied
Beiträge: 409
Registriert: 22.04.2003 01:02

2 Senden Buttons nebeneinander

Beitrag von Reality »

Hi,
ich erstelle gerade ein Formular in php und HTML.
Ich habe jedoch ein Prob:
Ich kann keine 2 Buttons nebeneinander erstellen, wo der eine die Vorschau zeigt und der andere absendet.
Bei mir zeigt es immer nur die Vorschau an.

Hier der Code:

Code: Alles auswählen

<form action="auswert.php" method="POST">
<form action="absenden.php" method="POST">
....
....
php und html code
....
....
<center>
<input type="submit" name="absenden" value="Absenden">
<input type="submit" name="vorschau" value="Vorschau"> <!-- konnte es nicht anders in die Mitte kriegen -->
</center>
</form>
Kennt jemand den Fehler?

Liebe Grüße
Reality
hansen
Mitglied
Beiträge: 22
Registriert: 16.03.2003 13:01
Wohnort: Neuenhaus
Kontaktdaten:

Beitrag von hansen »

Du darfst zwei Formulare nicht ineinander verschachteln. Der Browser weiß dann nicht, welcher Button zu welchem Formular gehört.
Ich weiß allerdings auch nicht, wie sich das mit der Vorschau machen lässt. :-?
Benutzeravatar
Reality
Mitglied
Beiträge: 409
Registriert: 22.04.2003 01:02

Beitrag von Reality »

Mist!
Muss doch möglich sein.
Hier im Forum ist das ja auch so.

Liebe Grüße
Reality
Benutzeravatar
netzmeister
Ehemaliges Teammitglied
Beiträge: 1146
Registriert: 02.05.2003 20:59
Wohnort: Freiburg
Kontaktdaten:

Beitrag von netzmeister »

Hallo,
versuch es mal so..

HTML:

Code: Alles auswählen

<form action="formular.php" method="POST"> 
.... 
.... 
php und html code 
.... 
.... 
<center> 
<input type="submit" name="absenden" value="absenden"> 
<input type="submit" name="vorschau" value="vorschau"> <!-- konnte es nicht anders in die Mitte kriegen --> 
</center> 
</form>
PHP: (formular.php)

Code: Alles auswählen

if (isset($_POST['absenden']))
{
  // absenden geklickt.
}
else
{
  // vorschau geklickt.
}
Gruß netzmeister
Gruß netzmeister
Die "Suche" ist euer Freund
Benutzeravatar
Reality
Mitglied
Beiträge: 409
Registriert: 22.04.2003 01:02

Beitrag von Reality »

Hi,
dann müsste ich ja alles in einer Datei schreiben!
Naja, ich jetzt erst mal eine Notlösung, danke! :)

Liebe Grüße
Reality
Benutzeravatar
Reality
Mitglied
Beiträge: 409
Registriert: 22.04.2003 01:02

Beitrag von Reality »

Oh halt!
Muss ich gar nicht! Ich könnte auch eine automatische Weiterleitung machen!

Liebe Grüße
Reality
Benutzeravatar
Reality
Mitglied
Beiträge: 409
Registriert: 22.04.2003 01:02

Beitrag von Reality »

Mist, ich will das jetzt so lösen, geht aber nicht.

Code: Alles auswählen

<form action="<?php echo $weiterleitung; ?>" method="POST">
....
code
....

<center>
<input type="submit" name="vorschau" value="Vorschau"> 
<input type="submit" name="absenden" value="Absenden">
</center>
<?php
if(isset($_POST['absenden'])){
$weiterleitung="absenden.php";
}
else{
$weiterleitung="vorschau.php";
}
?>
Es wird immer nur der aktuelle Formular aktualisiert.
Was ist falsch?!

Liebe Grüße
Reality
Benutzeravatar
Reality
Mitglied
Beiträge: 409
Registriert: 22.04.2003 01:02

Beitrag von Reality »

Hi,
habe nun den Code so geändert:

Code: Alles auswählen

<form action="<?php
if(isset($_POST['absenden'])){
echo "absenden.php";
}
else{
echo "auswert.php";
}
?>" method="POST">

....
Code
....

<center>
<input type="submit" name="vorschau" value="Vorschau"> <!-- konnte es nicht anders in die Mitte kriegen -->
<input type="submit" name="absenden" value="Absenden">
</center>
</form>
Ich werde jedesmal zu auswert weitergeleitet. Woran liegt das?

Liebe Grüße
Reality
MsTiFtS
Mitglied
Beiträge: 6
Registriert: 20.02.2004 19:40
Kontaktdaten:

Beitrag von MsTiFtS »

Das kann ja gar nicht gehen! PHP weiß ja nicht im Voraus, worauf der User klicken wird... :lol:

Also: (so könnt's gehen)

Code: Alles auswählen

<?php
if(isset($_POST['absenden'])){
  header("Location: absenden.php");
  die();
}
elseif(isset($_POST['vorschau'])){
  header("Location: vorschau.php");
  die();
}
?>
<form method="POST">
....
code
....
<center>
<input type="submit" name="vorschau" value="Vorschau"> 
<input type="submit" name="absenden" value="Absenden">
</center>
So werden halt die POST-Daten nicht mitübertragen, aber auch das kann man lösen...
z.B. in dem man das alles in einer Datei macht...
Dann muss man halt den Header-Befehl durch den Code, der im entsprechenden Fall ausgeführt werden soll ersetzen...
Benutzeravatar
Reality
Mitglied
Beiträge: 409
Registriert: 22.04.2003 01:02

Beitrag von Reality »

So werden halt die POST-Daten nicht mitübertragen, aber auch das kann man lösen...
z.B. in dem man das alles in einer Datei macht...
Muss aber übertragen werden. Und die ganzen Codes in einer Datei, finde ich zu groß.

Liebe Grüße
Reality
Antworten

Zurück zu „Coding & Technik“