# Problem mit Buttons und isset



## Gray (28. März 2007)

Folgendes Problem, ich hab 3 Buttons in dem Stil:


```
<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
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?


----------



## d-Stench (28. März 2007)

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:


```
if($_GET["myButton"]=="speichern")
{
}
elseif($_GET["myButton"]=="löschen")
{
}
elseif($_GET["myButton"]=="zurück")
```


----------



## Gray (28. März 2007)

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


----------



## -GS-Master (28. März 2007)

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
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
} 
?>
```


----------



## d-Stench (28. März 2007)

Stimmt!

Ich habe "value" mit "name" verwechselt!

Sorry mein Fehler...


----------



## -GS-Master (28. März 2007)

kann jedem mal passieren -.-


----------



## Gray (30. März 2007)

das gibt leider das gleiche ergebnis,
es sind alle Variablen gesetzt,
daher springt er immer in die erste If Abfrage rein.


----------



## tobee (30. März 2007)

Was gibt dir denn 
	
	
	



```
var_dump ( $_POST );
```
 aus?


----------



## -GS-Master (30. März 2007)

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
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
} 
?>
```


----------

