Formularfeld abfrage..
nicole
- php
0 Tom0 Nicole0 Tobias Kloth0 Tom
0 Tom
Hallo Leute!
Ich habe in einem Formular Radiobuttons. Drei verschiedene. Ich möchte, dass man eins auswählen kann und dann jeweils eine andere Datei eingebunden wird. Wie kann man das am besten lösen?
Bei mir öffnets immer die gleiche Datei...
Wäre froh, wenn ihr mir helfen könnt.
Danke scho im Voraus
Grüsse, Nicole
Hello Nicole,
Ich habe in einem Formular Radiobuttons. Drei verschiedene. Ich möchte, dass man eins auswählen kann und dann jeweils eine andere Datei eingebunden wird. Wie kann man das am besten lösen?
Bei mir öffnets immer die gleiche Datei...
wie sieht denn Dein Script dazu aus?
Du musst ja nur aus den drei Radiobuttons eine Group machen, indem du allen den gleichen Namen gibst. Um sie zu unterscheiden, werden nur andere values vergeben. Ich würde die einfach nur durchnumerieren.
Und im Script fragst Du dann mit
$wahl = intval($_POST['radio']['groupname']);
switch ($wahl)
{
case 1: ...
break;
case 2: ...
break;
...
default: ...
}
ab.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
hmm, es funktioniert noch immer nicht..
mein script sieht folgendermassen aus:
hier habe ich das formular:
<form method="POST" action="gallery_auswahl.php">
<p>
Bilder zu folgender Gallery hinzufügen:</p>
<p>
<input type="radio" value="1" name="button">Air Gallery<br>
<input type="radio" value="2" name="button">Snow Gallery<br>
<input type="radio" value="3" name="button">Water Gallery</p>
<p>
<input type="submit" value="uploaden" name="B1"></p>
<p>
</form>
und hier die Datei, auf die das Script durch Action geht:
gallery_auswahl.php:
<?
$wahl = intval($_POST['radio']['button']);
switch ($wahl)
{
case 1: echo "air";
break;
case 2: echo "snow";
break;
case 3:
default: echo "water";
}
?>
was ist daran falsch?
Hallo Nicole,
$wahl = intval($_POST['radio']['button']);
ein
print_r($_POST);
verrät dir, dass du hier ein "['radio']" zu viel hast, mit
$wahl = intval($_POST['button']);
sollte es funktionieren (wobei das intval imho nicht unbedingt notwendig ist, da php die Typenkonvertierung automatisch macht).
Grüße aus Nürnberg
Tobias
Hello,
$wahl = intval($_POST['radio']['button']);
ein
print_r($_POST);
verrät dir, dass du hier ein "['radio']" zu viel hast, mit
$wahl = intval($_POST['button']);
oder aber im Formular den Namen des radie ändern auf
<input type="radio" name="radio[gruppenname]" value="...">
Ich benenne die Formularelemente immer gerne getrennt nach Daten (data[...]), Controls (ctrl[...] und Buttons (btn[...]), wobei data[] die direkt an eine Tabelle gebundnenen Daten sind, ctrl[] diejenigen, die erst noch ausgewertet werden müssen (Select-Felder, Radios und Checkboxen) und btn[] eben die Submit-Buttons sind.
Das hat den Vorteil, dass man Formulare dann mittels immer gleicher Module verarbeiten kann.
sollte es funktionieren (wobei das intval imho nicht unbedingt notwendig ist, da php die Typenkonvertierung automatisch macht).
Aber die Typkonvertierung schützt nicht gegen Injektion. Darum fange ich Auswahlen auch immer erst bei 1 an und nicht bei 0. Denn intval('leck_mich') ist 0. Dann gilt eben der Default.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
<?
$wahl = intval($_POST['button']);
switch ($wahl)
{
case 1: echo "air";
break;case 2: echo "snow";
break;
case 3: ## *gg* sooo unbedarft bist du gar nicht ?
default: echo "water";
}
?>
Harzliche Grüße aus http://www.annerschbarrich.de
Tom