[HTML] Zwei Ziele in einem Formular?

bigtail

Ensign
Registriert
März 2003
Beiträge
159
Zwei Ziele in einem Formular?

Hi,

Wenn in dem Formular nicht alle Felder ausgefüllt sind, soll das Formular mit eine Fehlermeldung sich selbst aufrufen (action='<?php echo $PHP_SELF; ?>')

aber falls alles richtig ausgefüllt ist, sollen die Daten an ein zweites Formular ( Sie haben folgendes eingegeben ) geschickt werden.

Die Frage ist, wie soll ich das machen? denn soweit ich weiß, kann in einem Formular nur ein "action = Ziel" eingegeben werden.

Übrigens alles soll mittels der Schaltfläche "Senden" geschehen und nicht mit Checkboxen usw.

Mit "include" geht das zwar aber dann sieht man sowohl das Formualr selbst als auch das zweite Formular (zur Kontrolle).
 
richtig, nur ein ziel pro formular.

ich würde das erste formular an das zweite schicken, prüfen ob alle $_POST variablen richtig sind und falls nicht (also z.B. leer) einen header redirect auf das erste formular. diesem header noch eine variable mitgeben (?error=empty) und die variable $_GET['error'] im ersten formular abfragen.

fertig.
 
ne also ich würde beide Formulare in ein PHP-File packen
die Formulare rufen immer sich selbst auf und je nachdem welche Variablen übergeben werden (oder eben nicht) wird dieses oder jenes Formular angezeigt
 
Also Leute, ich bin ein blutiger Anfänger. Bitte entschuldigt mich, wenn ich mich doof anstelle, aber es ist mir bißchen schwer eure Antworten (die alle sehr gut klingen) auch in die Tat umzusetzen.
Daher schreibe ich hier die vereinfachte Variante meines Formulares.
Es funktioniert auch alles, nur ich möchte statt "include" eine andere Lösung.

Hauptformular
PHP:
<?php

//$flag==1, wenn das Formular abgeschickt wurde
if( $_POST['flag']=="1" )
{
	//testen, ob Felder ausgefüllt sind
	if( !$_POST['vorname']){$fehler="Bitte geben Sie Ihren Vornamen ein. <br>";}
	if( !$_POST['name']){$fehler.="Bitte geben Sie Ihren Namen ein. <br>";}
	

	if( $fehler )
	{
		$meldung="<font color=red>" . $fehler . "</font>";
		//$flag zurücksetzen
		unset( $_POST['flag'] );
	}
	else
		{
		[B]include( 'kontrolle.php' );[/B]
		}
		echo "<br/>"."Dit  Felder, die mit einem * gekennzeichnet sind, müssen ausgefüllt werden: " . "<br/>";
		echo $meldung;
}//Ende $flag==1

if( !$flag )
{
?>
	<form action='<?php echo $PHP_SELF; ?>' method="POST" name="form1">
	   <input  name="flag" type="hidden" value="1">
	   *Vorname:<input name="vorname" type="text" id="vorname" value='<?php echo $_POST['vorname']; ?>'/>
	   *Name:<input name="name" type="text" value='<?php echo $_POST['name']; ?>' />
	   <input type="submit" name="Submit" value="Abschicken" />
	</form>
<?php
}
?>

Formular zur Kontrolle
PHP:
<!-- Kontorlle.php -->

<?php echo "Sie haben folgende Angaben gemacht:<br/>"; ?>	
Vorname: <?php echo $_POST['vorname']; ?>
 Name: <?php echo $_POST['name']; ?>

<form action="insert.php" method="post">
<input type="hidden" name="vorname" value="<?php echo $_POST['vorname']; ?>" />
<input type="hidden" name="name" value="<?php echo $_POST['name']; ?>" />
<input type="submit" name="Submit" value="Bestätigen" />
</form>

Edited by Steffen: Zukünftig bitte selbständig die Code- und PHP-Tags verwenden!
 
Zuletzt bearbeitet von einem Moderator:
warum wird "kontrolle" überhaupt inkludiert !? ist zwar grundsätzlich egal, aber hier sehe ich nicht ganz den Sinn dahinter

jedenfalls ist in deiner Kontrolle ein Denkfehler:
1. Formular ausfüllen
2. Kontrolle (ebenfalls ein Formular)
3. einfügen

wenn ich nun bei der Kontrolle die Felder verändere, werden diese allen Anschein nach nicht mehr kontrolliert, was also, wenn ich bei der Kontrolle die Felder leere !? ist zwar eher unwahrscheinlich, aber dennoch möglich :) die Kontrolle sollte deshalb keine veränderbaren Felder mehr beinhalten
 
Absolut richtig, und genau deswegen möcht ich auch die Formulardaten ohne "include" weitergeben. Nur das Problem besteht darin, dass die Datei "kontrolle.php" die von "Hauptformular" angekommenen Daten nochmal weiterleiten muss und zwar an die Datei "insert.php" in der die Daten in einer Datenbank gespeichert werden.

Also:

Hauptformular -----> kontrolle.php ---------> insert.php

Daher ist "kontrolle.php" auch ein Formular.

Bestimmt nicht die beste Lösung.
 
also für dich ganz einfach zu lösen, indem du die Parameter einfach in dem Formular-Element "hidden" versteckst, und nur einen "senden" Button zur Verfügung stellst :)

<input type="hidden" name="parameter" value="wert">
 
also für dich ganz einfach zu lösen, indem du die Parameter einfach in dem Formular-Element "hidden" versteckst, und nur einen "senden" Button zur Verfügung stellst

Jawohl.

Danke an allen, die mir geholfen haben.
 

Ähnliche Themen

Zurück
Oben