[PHP] Auswahlliste bei Übergabe auf ausgewählten Wert setzen

M

Mr. Snoot

Gast
Hio,

ich habe in meiner Suchmaske eine Auswahlliste mit 5 Optionen (5, 10, 15, 20, 25 Treffer pro Seite). Damit es etwas komfortabler ist, soll anschließend der eingestellte Wert in der Liste vorausgewählt sein, damit man das nicht immer wieder ändern muss.

Die Umsetzung mit einer if-Abfrage ist ja im Grunde kein Problem, allerdings ist die Anweisung im Moment nicht sehr elegant.

Kann mir jemand nen Tipp geben, wie man das kürzer machen kann (ich habs auch mit einer Switch-Anweisung probiert, ist aber auch nicht kürzer)?

Im Moment hätte ich zwei Lösungen (sind wahrscheinlich beide grauenhaft, aber bitte trotzdem nicht lachen :D)

1.
PHP:
<?php

if($_POST["pp"] == "5")
{
  echo "<option selected>5</option>";
}
else
{
  echo "<option>5</option>";
}

if($_POST["pp"] == "10")
{
  echo "<option selected>10</option>";
}
else
{
  echo "<option>10</option>";
}

if($_POST["pp"] == "15")
{
  echo ...
..
.

?>
Meine andere Idee wäre, bei allen Optionen eine Variable einzufügen und diese nur dort, wo pp übereinstimmt auch auf selected zu setzen.

2.
PHP:
<?php

if($_POST["pp"] == 5)
{
  $pp5 = selected;
}
elseif($_POST["pp"] == 10)
{
  $pp10 = selected;
}
elseif($_POST["pp"] == 15)
{
  $pp15 = selected;
}
elseif($_POST["pp"] == 20)
{
  $pp20 = selected;
}
else
{
  $pp25 = selected;
}

echo "<option $pp5>5</option><option $pp10>10</option><option $pp15>15</option><option $pp20>20</option><option $pp25>25</option>";

?>
Ist schon kürzer - aber ist es auch die beste Lösung?

---------------------------------------

Und bei den Checkboxen hät ich's im Grunde so gemacht:
PHP:
<input type="radio" name="exp_capital" value="no" <?php if($_POST["exp_capital"] == no) { echo "checked"; } ?>>Ignorieren
<input type="radio" name="exp_capital" value="yes" <?php if($_POST["exp_capital"] == yes) { echo "checked"; } ?>>Beachten
 
Zuletzt bearbeitet:
wie wärs mit sowas?

PHP:
for ($i=1; $i<6; $i++) {
	if($_POST['pp'] == ($i * 5)) {
		echo '<option selected>'.($i * 5).'</option>'; 
	} else {
		echo '<option>'.($i * 5).'</option>'; 
	}
}


mfg
 
Sowas - wäre sehr gut :daumen:

Vielleicht kann ich es ja doch irgendwann noch verwerten - danke schön :)
 
Zurück
Oben