Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Radiobuttons mit PHP

Empfohlene Antworten

Hallo,

ich möchte gerne auf einer PHP-Seite Radiobuttons verwenden und habe da auch schon entsprechend der PHP-FAQ meinen Code zusammengebaut. Offensichtlich scheine ich aber etwas nicht verstanden zu haben, denn die Benennungen der Felder sind falsch und ich weiß nicht, woran das liegt.

So (bei mir) geht es nicht:


$radio = array(
array('name' => 'focoapproved', 'value' => 'yes'),
array('name' => 'focoapproved', 'value' => 'no'));
foreach ($radio as $focoappr)
{
echo printf('<td align="left" valign="middle"><input type="radio" name="appr"
value="%s" %s/> %s<br /></td>',
$focoappr['value'],
(isset($_REQUEST['appr']) AND $_REQUEST['appr'] ==
$focoappr['value']) ? 'checked="checked" ' : '',
$focoappr['name']);
}
[/PHP]

[b]und so gehts (nicht von mir)[/b]

[PHP]
$elements = array(
array('name' => 'gruen', 'value' => 'gr'),
array('name' => 'blau', 'value' => 'bl'),
array('name' => 'rot', 'value' => 'ro')
);
foreach ($elements as $element)
{
printf('<td align="left" valign="middle"><input type="radio" name="farbe"
value="%s" %s/> %s<br />',
$element['value'],
(isset($_REQUEST['farbe']) and $_REQUEST['farbe'] ==
$element['value']) ? 'checked="checked" ' : '',
$element['name']);
}

Kann mir mal bitte jemand die Augen öffnen? :rolleyes: :floet:

Danke + Gruß

-etops-

Nimm mal das "echo" vor dem "printf" weg.

Danke - das hab ich mittlerweile auch gefunden :-)

Jetzt ist mein Problem nur noch, daß ich die beiden Radiobuttons in der gleichen Tabellenzelle haben möchte - aber das wird auch noch klappen.

Danke - das hab ich mittlerweile auch gefunden :-)

Jetzt ist mein Problem nur noch, daß ich die beiden Radiobuttons in der gleichen Tabellenzelle haben möchte - aber das wird auch noch klappen.

Da musst du einfach das "<br/>" entfernen. Das sorgt für den Zeilenumbruch.

Danke aber - nee, das ist es nicht, denn die beiden Radiobuttons sind in zwei unterschiedlichen Zellen (nicht Zeilen nebeneinander und das will ich nicht haben...

kann es sein, dass beim zweiten codeausschnitt die <td> net geschlossen wird?

:hells:

Danke aber - nee, das ist es nicht, denn die beiden Radiobuttons sind in zwei unterschiedlichen Zellen (nicht Zeilen nebeneinander und das will ich nicht haben...

Ups, dann hab ich das doch glatt falsch gelesen. Dann hat ja BayK schon den richtigen Hinweis gegeben.

Alles was zwischen dem <td>-Tag steht kommt dann in eine Zelle, also müsstest du, nachdem alle Radiobuttons erstellt sind den Tag erst schließen und nicht nach jedem Radiobutton.

Alles was zwischen dem <td>-Tag steht kommt dann in eine Zelle, also müsstest du, nachdem alle Radiobuttons erstellt sind den Tag erst schließen und nicht nach jedem Radiobutton.

Nee, daran liegts nicht...der td-Tag muss vor der while-Schleife stehen und nicht in der Schleife, da er sonst bei jedem Durchlauf immer eine neue Zelle öffnet.

Und es ist wie immer - kaum macht man es richtig, schon gehts...

Danke!

Der (funktionierende) Code sieht jetzt so aus [vielleicht braucht es ja mal jemand]:


$radio = array(
array('name' => 'no', 'value' => 'no'),
array('name' => 'yes', 'value' => 'yes'));
printf('<td align="left" valign="middle">');
foreach ($radio as $choice)
{
printf('<input type="radio" name="cho" value="%s" %s/> %s',
$choice['value'],
(isset($_REQUEST['cho']) AND $_REQUEST['cho'] == $choice
['value']) ? 'checked="checked" ' : '',
$choice['name']);
}
printf('</td>');
[/PHP]

Darf man fragen warum du deine Radiobuttons so generieren lassen willst?

Ja, darf man: weil ich den Inhalt je nach Auswahl (ja/nein) in eine Datenbank schreiben lassen möchte und die Datenbankinhalte entsprechend an anderer Stelle wieder ausgegeben werden sollen...

Da möglicherweise noch weitere Felder dazukommen, war das hier ein guter Anfang.

[Neugiermodus]

Gibt es etwas, das Dich an der Vorgehensweise stört oder was Du anders/besser gemacht hättest?

[/Neugiermodus]

also bei dem code gibts doch noch etliche optimieruntsmöglichkeiten ;)

Hallo,

ich hab nochmal eine Frage zu diesen Radiobuttons, die sich aber auch auf die HTML-Tags <textarea></textarea> bezieht:

Ich habe ein Formular, das Radiobuttons und Textarea enthält und dessen Inhalte werden beim ersten Erfassen auch wie gewünscht in die Datenbank geschrieben. Allerdings möchte ich diese Einträge auch ändern können; nur sehe ich auf der Update-Seite nicht die eingegebenen Werte aus der Datenbank.

Mir würde schon helfen zu wissen, wo ich sowas in einem Tutorial finde :)

Es sei denn, daß von vornherein klar ist, daß ich Radiobuttons und Textarea-Tags gar nicht abfragen kann... :floet:

Danke schon mal - Gruß

-etops-

[Neugiermodus]

Gibt es etwas, das Dich an der Vorgehensweise stört oder was Du anders/besser gemacht hättest?

[/Neugiermodus]

Für die simple Darstellung von Radiobuttons erschien mir das ein bisschen zu umständlich.

Aber wenn du das noch erweitern willst sollte es eigentlich okay sein.

Was auch zu meiner Verwirrung beigetragen hat war wohl die nette Formatierung des Boards... :D

@etops

Klar kannst du Textareax bzw. Radiobuttons auslesen:


echo $_POST['textarea']; //der name von deiner ta
echo $_POST['radiobutton']; // der name von deinem rb, hast du eine gruppe von radiobuttons, müssen die den gleichen namen haben, du bekommst den wert des radiobuttons der markiert ist und im value property steht.

//Alternativ, falls du dein Formular per GET abschickst, wovon ich mal nicht ausgehe:
echo $_GET['textarea'];
echo $_GET['radiobutton'];

[/PHP]

Checkbox:


<input type="checkbox" name="a" value="1"/>

<input type="checkbox" name="a" value="2" checked="checked"/>

<input type="checkbox" name="a" value="3"/>

Selectbox:

<select name="a">

  <option value="1">Eins</option>

  <option value="2">Zwei</option>

  <option value="3" selected="selected">Drei</option>

</select>

Textarea:

<textarea>Der alte wert</textarea>

Checkbox:


<input type="checkbox" name="a" value="1"/>

<input type="checkbox" name="a" value="2" checked="checked"/>

<input type="checkbox" name="a" value="3"/>

Schön aus SelfHTML abgeschrieben, es ging in der Frage des Themenstarters aber darum auch die Radiobuttons dynamisch zu setzen...

Danke mal wieder...

Daß das mit der <textarea> nicht geklappt hat, lag an der Unwissenheit, daß der zu übergebende Wert von den <textarea> - Tags umgeben sein muß. Aber das geht jetzt.

Einziges Problem sind jetzt noch die blöden Radiobuttons :floet: :

Ich hätte gerne, daß defaultmäßig "no" selektiert ist und daß ich beim Ändern der Seite den ursprünglich selektierten Wert sehen kann.

Der Quelltext ist folgender:


<?php
$radio = array(
array('name' => 'no', 'value' => 'no'),
array('name' => 'yes', 'value' => 'yes'));
printf('<td align="left" valign="middle">');
foreach ($radio as $focoappr)
{
printf('<input type="radio" name="appr" value="%s" %s/> %s',
$focoappr['value'],
(isset($_REQUEST['appr']) AND $_REQUEST['appr'] == $focoappr['value']) ? 'checked="checked" ' : '',
$focoappr['name']);
}
printf('</td>');
?>
[/PHP]

Falls jemandem der Quelltext bekannt vorkommt: Ja, er ist abgewandelt aus der PHP-FAQ aber so ganz verstanden hab ich ihn trotzdem nicht :hells:

Danke + Gruß,

-etops-

Schön aus SelfHTML abgeschrieben, es ging in der Frage des Themenstarters aber darum auch die Radiobuttons dynamisch zu setzen...

Es geht darum dem Threadstarter Tipps zu geben wie er zum Ziel kommt und nicht seine Arbeit zu machen.

Wenn du für jedem dem Du hier helfen willst immer die kompletten scripts schreibst, dann bin ich stolz auf Dich, aber ich muss auch noch andere Dinge tun.

Ausserdem erzieht man so die Leute zu selbstständigkeit.

Wie du vielleicht auch schon bemerkt hast sind ein großteil aller "guten" Antworten immer von den selben 5-10 Personen zu denen ich auch dazuzähle.

Also wenn man keine Ahnung hat einfach mal Fresse h.....

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.