Drop Down per PHP "selected" setzen?

xamunrax

Erfahrenes Mitglied
hi,

und zwar ich arbeite gerade an einem erfassungs programm auf PHP basierend und da stoss ich gerade auf ein problem und zwar ich habe eine "edit" funktion für den jeweiligen datensatz das heist er pakt mir die daten aus meiner MySQL datenbank in mein formular aber nun das problem ich habe ein dropdown(auswahlfeld) feld, dort stehen etwa 20 optionen zur auswahl wie sage ich ihm per PHP das er dort die Option "selecten" soll die in der datenbank steht ?
 
du kannst es 20 mal mit if überprüfen ;)
also so:
PHP:
...html code...
if($db=="erstes"){echo"selected";}
...html code...
if($db=="zweites"){echo"selected";}
...html code...
usw...
oder du machst es mit ner switch bedingung was aber das ganze aber wegen dem html code komplizierter macht
 
hehe

das mit der "if" funktion habe ich mi auch schon überlegt aber, erstens können auch mal neue optionen dazu kommen und zweitens habe ich nicht wirklich 20 sondern eher 80 aber egal wie meinst du das mit der "switch" funktion ?
 
$optionen array("a","B","C"... usw);

for ($lo=0;$lo<20;$lo++) {
if ($db == $optionen[$lo]) {
echo "<option selected>$optionen[$lo]";
} else {
echo "<option > $optionen[$lo]";
}
}
 
Vorab ich hab keine AHnung von PHP :P ...hab aber ein fertigen Code auf meiner Seite der nicht richtig funktioniert. Der Programmier ist im Urlaub und hat mich hilflos zurück gelassen.
Man soll auch hier auswählen aus 4 verschiedenen Optionen. 5 Soll standart sein, wenn man nichts auswählt. Im moment ist es aber so, dass wenn gar nichts ausgewählt wird auch nix angezeigt wird. Es funktioniert erst, wenn man die Auswahl einmal angeklickt hat und etwas ausgewählt. Was ist da falsch ? Vielen Dank für eure Hilfe :-) !!


Code:
<div class="window_link">
		Wie viele Nachrichten wollen sie maximal pro Feed angezeigt bekommen?
		<form>
			<select name="rssCount" onchange="feedConfigRssCount(this.value);">
				<?php 
					$arr = array(5,10,20,40);
					$selected = 5;
					if(isset($_COOKIE["ref"])) {
						$user = new User(mysql_real_escape_string($_COOKIE["ref"]));
						$selected = $user->getRssCount();
					}
					
					foreach($arr as $c) {
						$sel = ($c == $selected) ? "selected=\"selected\"" : "";						
						echo "<option ".$sel." value=\"".$c."\">".$c."</option>";
					}
					
					?>
			</select>
		</form>
	</div>
 
Hallo max78,

so richtig verstehe ich zwar nicht deine Beschreibung, wie es funktionieren soll.
Aber soviel:
  • Das HTML-SELECT-Element ruft bei Änderung seines Wertes die Javascript-Funktion feedConfigRssCount() auf. Man muss also einen anderen Wert anklicken, bevor das "onchange"-Event ausgelöst wird und über Javascript etwas passiert. Du könntest ein anderes Event nutzen: Javascript-Eventhandler. Ich bin mir gerade nicht sicher, ob "onclick" da so funktioniert, wie du es haben möchtest.
  • Damit eine bestimmte Option des SELECT-Elements beim Laden der Seite vorausgewählt ist, muss deren Wert mit der PHP-Variable $selected übereinstimmen. Diese wird zuerst mit dem int-Wert 5 belegt, kann aber auch hier
PHP:
$selected = $user->getRssCount();
durch einen nicht im Array {5,10,20,40} enthaltenen Wert überschrieben worden sein.

  • Ist Letzeres nicht der Fall, ist trotzdem 5 ausgewählt, da es die erste Option ist.
 
Zuletzt bearbeitet:
Zurück