Select-Feld automat. ausgewählt!?

mayooo

Grünschnabel
Hallo werte Gemeinde!

Ich komm gleich mal auf den Punkt. Ich habe ein Formular, welches hauptsächlich aus Selectfeldern, Radiobuttons usw. besteht. Je nach dem, was in dem einen oder anderem Selectfeld gewählt wird, wird das Formular neugeladen (onChange).

Natürlich will ich, dass die bisher gewählten Einstellungen mit übernommen werden. Also werden die Werte bei dem onChange selbstverständlich mit in die Adresszeile übergeben. Nun soll ja wieder der Wert im Select-Feld "selected" werden. Also in etwa so:

Code:
<option value="1" <?php if($frid == 1) echo "selected"; ?>>Wert 1 </option>

Dies ist recht umständlich bei vielen Einträgen in den Selectfeldern. Gibt es da evtl. eine einfachere Variante? Wie z.B. "Wenn der Wert von $frid = dem Wert dieser option ist, dann selected" ? Quasi vlt. was mit this.value oder so. Aber PHP und JS zu vereinbaren ist ja auch recht schwierig.

Als nächste Alternative wäre eine DB-Lösung denkbar, da ja die kleine Abfrage nur einmal geschrieben wird. (Schleife und so)
Aber eine DB-Anbindung kommt nicht in Frage, da sich die Einträge in den Feldern nicht verändern werden. Es wäre aber dann wohl die letzte Alternative.

Habt ihr sonst irgendwelche Vorschläge? :suspekt:

MfG Mario
 
Wie werden denn die Option-Felder erstellt?
Wenn Du eine Schleife mit Zaehlvariable nutzt kannst Du ueberpruefen ob der uebergebene Wert dem aktuellen Stand des Zaehlers entspricht.
 
Ja die hab ich ganz oldschool in HTML erstellt. Die Zählschleife wäre bei den Selectfeldern mit Zahlwerten supi. Aber ich habe auch Felder mit Strings :-\
 
Solche Dinge verwende ich auch...
Ich mach das so:

PHP:
$selected_1 = "";
if ($param == "wert")
{
    $selected_1 = " selected";
}
<select name="blub">
<option value="1" $selected_1>Name</option>
</select>
....

Wenn du damit größere Mengen an Elementen einer Dropdown abarbeiten willst, empfiehlt sich natürlich eine Schleife welche über alle Einträge einer Dropdown iteriert und das anhand vorhandener Parameter erledigt.


EDIT:
Habes gerade nochmal anhand meiner Programme verglichen...
Ich hab da auch wo folgende Systematik:

Wenn deine Werte für die Select aus einer DB kommen, kannst du die ja mittels for-schleife oder While-schleife ausgeben und direkt überprüfen:

PHP:
for(...) {
echo "<option value=\"$val\"";
    if ($blub == "bla")
    {
        echo " selected";
    }
echo ">$name</option>";
}

Ansonsten kannst du mit this.value oder form.this oder wie die Dinger alle heissen ja nur den aktuell-markierten Wert erfassen.
 
Zuletzt bearbeitet:
Und nun hab ichs (endlich) geschafft

PHP:
echo '<select name="hmi[]" size="8" multiple style="width: 168px" class="suchmaske_kasten">';

do
  { 
    echo '<option value="' . $row_abflug_in['code'] . '"';
 
    $i = 0;
    foreach($_GET['hmi'] as $hmi_arr[])
    { 
      if($hmi_arr[$i] == $row_abflug_in['code']) echo " selected";
      $i++;
    }		
    echo '>' . $row_abflug_in['bez'] . '</option>';

  } while ($row_abflug_in = mysql_fetch_assoc($abflug_in));

echo '</select>';

Mit Datenbank war dann wohl doch die beste Lösung! :-)
 
Zurück