Problem mit Buttons und isset

Gray

Erfahrenes Mitglied
Folgendes Problem, ich hab 3 Buttons in dem Stil:

HTML:
<button type="submit" name="speichern"><img src="speichern.gif"> speichern</button>
<button type="submit" name="loeschen"><img src="loeschen.gif"> löschen</button>
<button type="submit" name="zurueck"><img src="zurueck.gif"> zurück</button>

Nun will ich auswerten auf welchen Button geklickt wurde, versuch hab ich das einfach per isset:

PHP:
<?php
if(isset($speichern)){
...
}elseif(isset($loeschen)){
...
}elseif(isset($zurueck)){
...
}
?>

allerdings sind immer alle Buttons gesetzt mit dem Code zwischen den beiden Button Befehlen.

Wie kann ich jetzt rausfinden was gedrückt wurde?
 
mit isset prüfst du, ob die Variable vorhaden ist. Und in deinem Fall sind ja alle 3 vorhanden, da die Buttons sich im selben Formular befinden. Ich würde die Buttons alle gleich nennen:

name="myButton"

und allen drei ein anderen wert vergeben:

value="speichern"
value="löschen"
value="zurück"

dann kannst nähmlich folgendes machen:

PHP:
if($_GET["myButton"]=="speichern")
{
}
elseif($_GET["myButton"]=="löschen")
{
}
elseif($_GET["myButton"]=="zurück")
 
Zuletzt bearbeitet:
klappt leider nicht, ich bekomme als Wert für den Button immer den des lezten Feldes im Formular und auserdem kann ich bei value eintragen was ich will, es nimmt immer den Wert zwischen den Tags
 
Woran es bei dir liegt ist ganz einfach
Bei dir sind die Super-Globalen-Variablen nicht mehr so aufzurufen!
Bei dir ist demnach "registry globals" auf "off" ...

Kannst dir Variablen wie folgt abrufen $_POST['name']
Demnach sieht dein Code dann zum Beispiel so aus ...

P.S.: ist schon getestet!
PHP:
<?php
if(isset($_POST['speichern'])){
echo "speichern";
}elseif(isset($_POST['loeschen'])){
echo "loeschen";
}elseif(isset($_POST['zurueck'])){
echo "zurueck";
}
else
{
?>
<form method="POST" action="test.php">
<button type="submit" name="speichern"><img src="speichern.gif"> speichern</button>
<button type="submit" name="loeschen"><img src="loeschen.gif"> löschen</button>
<button type="submit" name="zurueck"><img src="zurueck.gif"> zurück</button>
</form>
<?php
} 
?>
 
Zuletzt bearbeitet:
das gibt leider das gleiche ergebnis,
es sind alle Variablen gesetzt,
daher springt er immer in die erste If Abfrage rein.
 
Hey habs doch selbst getestet!
Das gibt genau dir Ausgabe die du willst -.-

//EDIT --> Firefox sorry ... der macht mir die richtige ausgabe ^^

Na dann hilft wohl nichts anderes ...
PHP:
<?php
if(isset($_POST['senden']) AND $_POST['senden'] == "speichern"){
echo "speichern";
}elseif(isset($_POST['senden']) AND $_POST['senden'] == "loeschen"){
echo "loeschen";
}elseif(isset($_POST['senden']) AND $_POST['senden'] == "zurueck"){
echo "zurueck";
}
else
{
?>
<html>
<head>
<title>by Guenny</title>
</head>
<body>
<form method="POST" action="test.php">
<input type="submit" name="senden" value="speichern">
<input type="submit" name="senden" value="loeschen">
<input type="submit" name="senden" value="zurueck">
</form>
</body>
</html>
<?php
} 
?>
 
Zuletzt bearbeitet:
Zurück