php formular

S

susi19

Ich habe probiert ein Formular zu erstellen.
Dazu habe ich zwei Buttons gezaubert, die nach Klick, eine Aktion ausführen sollen.
Klick man auf den einen geht es zur Starseite, klickt man auf den anderen, soll es auf die nächste Seite gehen.
Das kann man ja auch mit einem einfachen Link realisieren, aber ich möchte das mit PHP lösen, weil ich was lernen möchte :-) Die Suchfunktionen habe ich bemüht und nichts gefunden.
Bisher habe ich nicht mehr als <form id="TollesFomular" action="?php echo $PHP_SELF ?>" method="post" name="TollesFormular">
<input type="submit" name="submitButton1" value="Finde ich doof" />
<input type="submit" name="submitButton2" value="Finde ich super" />
</form>
Und nun bin ich auch schon ratlos
 
Andere Möglichkeiten wäre, wenn du z.b. 2 Radio-Buttons setzt und diese von einen Script auswerten lässt.

Würde davon allerdings abraten, da es die Seite nur Vergrößern würde. Ein richtigen Vorteil hättest du davon nicht.
 
Jetzt einmal unabhängig von den Radiobuttons bleibt wohl eher PHP das Problem.
Trotzdem sid hier Radiobuttons angebrachter, soweit ich weiß wird das value des Submit-Button nicht mitübertragen. (oder?)
Du würdest in der PHP-Datei (die du besser anlegen solltest, statt alles in eine Zeile stopfen) also ohne Info dastehen, auf welche der zwei Seiten jetzt weitergeleitet werden soll.

Generell weiterleiten kannst du mit der Funktion header, zB
header('Location: http://www.google.at');
würde auf Google weiterleiten

Bei der Variante ist aber das Problem, das der Zurückbutton vom Browser sinnlos wird, da sofort wieder weitergeleitet wird.

Dafür besser wäre:
Eine HTML-Seite generieren, die anzeigt "Sie werden in 3 Sekunden weitergeleitet" etc;
und in der Seite folgendes einbauen:
<meta http-equiv="refresh" content="3; URL=http://www.google.at">
In dem Fall wird nach 3 Sekunden auf Google weitergeleitet
 
Doch mit header('Location: ...'); gefällt mir das schon, nur bekomme ich das nicht hin.
Ich möchte es halt mit Php lösen, muss doch irgendwie gehen. Bei Abstimmungen ist die Funktionsweise doch ähnlich, oder? Sende ich den einen Button ab, komme ich hier hin, sende ich den anderen ab, dort hin...
Aber egal, ich gebe auf. Habe stundenlang rumprobiert und nichts geschafft.
 
Aufgeben? So wirst du PHP aber nicht lernen:mad:
Was hast du denn bis jetzt?

edit: Hier, so funktionierts: http://sheel.bplaced.net/location.html

location.html:
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test</title>
</head>
<body>

<form action="weiterleitung.php" method="get">
  <p>Weiterleiten auf:</p>
  <p>
    <input type="radio" name="Ziel" value="http://www.google.at">Google<br>
    <input type="radio" name="Ziel" value="http://www.tutorials.de/php/366408-php-formular.html#post1897875">Dein Beitrag auf Tutorials.de<br>
  </p>
<p><input type="submit" value="OK"></p>
</form>

</body>
</html>


weiterleitung.php:
PHP:
<?php
$ziel="http://sheel.bplaced.net/location.html";
if(isset($_GET))
{
    if(isset($_GET["Ziel"]))
    {
        $ziel=$_GET["Ziel"];
    }
}
header("Location: $ziel");
?>


Mehr ist es nicht.

Das PHP würde sogar auch so gehen:
PHP:
<?php
$ziel=$_GET["Ziel"];
header("Location: $ziel");
?>
Der Rest ist nur, falls nichts angeklickt wurde etc, dass wieder die HTML-Seite geöffnet wird.
 
Zuletzt bearbeitet:
Aufgeben? So wirst du PHP aber nicht lernen:mad:
Was hast du denn bis jetzt?

edit: Hier, so funktionierts: http://sheel.bplaced.net/location.html

location.html:
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test</title>
</head>
<body>

<form action="weiterleitung.php" method="get">
  <p>Weiterleiten auf:</p>
  <p>
    <input type="radio" name="Ziel" value="http://www.google.at">Google<br>
    <input type="radio" name="Ziel" value="http://www.tutorials.de/php/366408-php-formular.html#post1897875">Dein Beitrag auf Tutorials.de<br>
  </p>
<p><input type="submit" value="OK"></p>
</form>

</body>
</html>


weiterleitung.php:
PHP:
<?php
$ziel="http://sheel.bplaced.net/location.html";
if(isset($_GET))
{
    if(isset($_GET["Ziel"]))
    {
        $ziel=$_GET["Ziel"];
    }
}
header("Location: $ziel");
?>


Mehr ist es nicht.

Das PHP würde sogar auch so gehen:
PHP:
<?php
$ziel=$_GET["Ziel"];
header("Location: $ziel");
?>
Der Rest ist nur, falls nichts angeklickt wurde etc, dass wieder die HTML-Seite geöffnet wird.

Danke für Deine Mühe :)
Ich wollte versuche, dass die Weiterleitung nach KLick auf dem Button mittels Php realisiert wird. So habe ich die Ziele ja bereits im Formular angegeben und benötige dann eigentlich kein Php mehr, oder?

Ich dachte mir das in etwa so:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

<input type="button" value="Ziel 1" name="action" />

<input type="button" value="Ziel 2" name="action" />

</form>

Und nun soll ausgewertet werden, welcher Button gedrückt wurde und entsprechend weitergeleitet werden.

Ratlos Susi
 
Danke für Deine Mühe :)
Ich wollte versuche, dass die Weiterleitung nach KLick auf dem Button mittels Php realisiert wird. So habe ich die Ziele ja bereits im Formular angegeben und benötige dann eigentlich kein Php mehr, oder?


<input type="button" value="Ziel 1" name="action" />

<input type="button" value="Ziel 2" name="action" />

</form>

Und nun soll ausgewertet werden, welcher Button gedrückt wurde und entsprechend weitergeleitet werden.

Ratlos Susi

Das macht doch sheels Script soweit. Anstelle für den direkten Link kannst du auch irgendwelche Werte und /oder Texte übergeben.
Und dann mittels eines Vergleiches den Passenden Link einsetzen.
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test</title>
</head>
<body>

<form action="weiterleitung.php" method="post">
  <p>Weiterleiten auf:</p>
  <p>
    <input type="radio" name="Ziel" value="1">Google<br>
    <input type="radio" name="Ziel" value="2">Dein Beitrag auf Tutorials.de<br>
  </p>
<p><input type="submit" value="OK"></p>
</form>

</body>
</html>
PHP:
<?php
   if($_POST['Ziel']=="1")
     {
       header("Location: http://www.google.de");
     }
    elseif($_POST['Ziel']=="2")
      {
        header("Location: http://www.tutorials.de/php/366408-php-formular.html#post1897875");
      }
?>

Oder mittels eines Arrays
PHP:
<?php
 $ziele = array(1 => "http://www.google.de",
                     2 => "http://www.tutorials.de/php/366408-php-formular.html#post1897875");
 header("location: $ziele[$_POST['Ziel']]");
?>
 
Zuletzt bearbeitet:
Moin,

Sheel hat dir die Antwort doch schon spendiert.
Ich hab das ganze mal noch etwas vereinfacht, indem ich die URL direkt im Value-Attribut übergebe, das spart dann Platz und man muss sich nicht noch mit Arrays oder anderm Kram rumschlagen :D
Du schreibst die URL einfach als Wert in das Value-Attribut.

Code:
<?php
if(isset($_POST['action'])) {

$ziel = $_POST['action'];
header("Location: $ziel");

}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>

<body>

<form method="POST" action="<?php $_SERVER['PHP_SELF'] ?>">
<input type="submit" name="action" value="http://www.google.de">
<input type="submit" name="action" value="http://www.tutorials.de">
</form>
</body>
</html>

wenn das natürlich vom design her nicht gefällt, dass man die komplette URL auf dem Button hat, dann einfach noch ne Funktion basteln, die das http://www. vorn dran setzt.

...FERTIG ;).
Noch 'n schönen Tag.
 
Zurück