Radiobutton auslesen PHP

Zyklon

Grünschnabel
Hi,
ich habe folgendes Problem:

Ich übergebe mit HTML ein Formular mit einer kleinen Auswahlliste (Radiobuttons)

Wie kann ich überprüfen welcher Butoon ausgewählt wurde ?
Die Radiobuttuns sehen folgendermaßen aus:

Code:
<input type="radio" name="kategorie" value="tools">
Code:
<input type="radio" name="kategorie" value="sonstiges">

wie kann ich jetzt auf der Seite auf die die Variablen geschickt werden prüfen welcher
Radiobutton angeklickt wurde?
Bei Textfeldern steht ja normalerweiße der "name" später als $name bereit und kann weiterverarbeitet werden.

Wie ist das bei Radiobuttons ?

Ich habe schon versucht auf der Zielseite den Inhalt des Radiobuttons mit

Code:
echo $_POST['kategorie'];

auszugeben um zu überprüfen was in der Variable steht.
Leider bis jetzt ohne Erfolg
 
Zuletzt bearbeitet:
<input type="radio" name="kategorie" value="sonstiges" CHECKED />



Gruss


Das muss währe die Abfrage

PHP:
<?php 
if($_POST["kategorie"] == "hier_steht_was") 
{
echo 'CHECKED';
}
?>
 
Zuletzt bearbeitet:
Hi Zyklon,

wahrscheinlich bestätige ich DeeJay nur... :)

Um einen Radio-Button zu überprüfen, muss nur die Existenz der Variablen im $_POST-Array geprüft werden, der Inhalt ist standardmäßig immer 'on', wenn der Radio ausgewählt ist.

PHP:
 if( isset( $_POST["radiobuttonname"]) )
{
// Code, wenn Radio ausgewählt wurde....
:
:
}



Banzai

Der Urinstinkt ist doppeldeutig....
 
Danke für die Antworten!
Was ich jedoch noch nicht ganz verstehe ist:

Mit dem Namen des Radiobuttons verhindert mal ja das bei Radiobuttons mit gleichem Namen eine Mehrfachauswahl.

Ich habe gedacht das dem "name" in "value" die Variable zugewiesen wird die in "value" steht.


Was bedeutet das "checked" genau ?

DeeJay könntest du mir dein Beispiel anhand meines Codes oben erklären?


Ich hoffe ich konnte mein Defizit an Wissen gut darlegen
 
checked oder besser checked="checked" bedeuted, im HTML-Code, das dieser Radio-Button schon vorgewählt ist. Falls man im Code mehrere Radio-Buttons mit gleichem 'name' als checked markiert, wird der letzte 'checked' Radio-Button markiert...

Um jetzt im PHP-Skript einen Radio-Button zu markieren, der davor im Formular ausgewählt und somit übergeben wurde, schreibst du einfach

PHP:
if ($_POST['kategorie'] == 'sonstiges') {
     echo '<input type="radio" name="kategorie" value="sonstiges" checked="checked">';
} else {
     echo '<input type="radio" name="kategorie" value="sonstiges">';
}

oder kürzer:

PHP:
echo '<input type="radio" name="kategorie" value="sonstiges"';
echo ($_POST['kategorie'] == 'sonstiges') ? 'checked="checked">' : ''; // () ? : ; bedeutet (Überprüfung innerhalb der Klammer) ? (wenn true) : (wenn falsch);
echo '<input type="radio" name="kategorie" value="sonstiges">';
 
Ok Danke!

Mein eigentliches Problem handelt aber nicht da von das ich einen Radiobutton vorauswählen
will sondern das ich wissen will welcher Radiobutoon auf der vorherigen Seite ausgewählt wurde.

So nach dem Motto:

Code:
if( $Radiobutton == "sonstiges")

echo " Sie haben sonstiges ausgewählt";

oder sowas in der Art halt!

Das ich über eine Variable den Wert den jeder Radiobutton hat ausgelesen bekomme

War wahrscheinlich mein Fehler das ihr mein Problem verkannt habt!
Versuche mich in Zukunft eindeutiger Auszudrücken
 
Hallo!

Versuch es mal so.....
formular.html
HTML:
<form action="check.php" method="post">
<input type="radio" name="check" value="Tools"> Tools<br>
<input type="radio" name="check" value="Sonstiges"> Sonstiges<br>
<input type="submit" name="auswahl" value="Abschicken">
</form>
check.php
PHP:
<?php
if($_POST['auswahl'] == true) {
	 if($_POST['check'] == "Tools") {
		 echo "weitere Anweisungen bei Auswahl <b>Tools</b>";
	 }
	 if($_POST['check'] == "Sonstiges") {
		 echo "weitere Anweisungen bei Auswahl <b>Sonstiges</b>";
	 }
	 if($_POST['check'] == "") {
		 echo "weitere Anweisungen wenn <u>nichts</u> ausgewählt wurde";
	 }
}
?>
Ich habe es zwar nicht getestet, aber ich meine so müsste es funktionieren.

Gruss Dr Dau
 
Problem gelöst! ;-)

Für alle die ein ähnliches Problem haben hier meine Lösung:

die radiobuttons sehen folgendermaßen aus

Code:
<input type="radio" name="kategorie" value="fun">
<input type="radio" name="kategorie" value="tools">

formular wird mit "Post" übergeben.

Auf der Zielseite kann man die Radiobuttons mit Beispielsweiße

Code:
$auswahl = $_REQUEST['kategorie'];

auslesen. In $auswahl steht dann entweder "fun" oder "tools" drin.

Jetzt kann man entweder mit IF oder Switch/Case
mit der Variablen arbeiten.

Ob das die optimale Lösung ist bleibt mal dahin gestellt!
Auf jeden Fall funktioniert es zu meiner Zufriedenheit.


Danke an alle die versucht haben mir zu helfen!

Gruß Zyklon
 
Du solltest aber nicht vergessen auch zu prüfen ob $_REQUEST['kategorie'] evtl. leer ist..... denn es könnte ja auch jemand auf den Submit Button drücken ohne etwas auszuwählen. ;)
Bei meiner Variante habe ich dieses berücksichtigt.

[edit]
Ein $_REQUEST kann aber auch ein $_GET annehmen..... somit währe eine Anweisung auch ohne dem Formular möglich..... sprich, es könnte jemand die Anweisung per URL übermitteln.
[/edit]
 
Zuletzt bearbeitet:
Es ginge aber noch einfacher:
PHP:
<?php

	if( isset($_POST['kategorie']) && !empty($_POST['kategorie']) ) {
		echo $_POST['kategorie'];
	} else {
		echo 'Es wurde keine Option ausgewählt!';
	}

?>
 
Zurück