Ashura: Formular-Dropdown, Einträge mit Link vorselektieren

Beitrag lesen

Hallo Sebastian.

Trotzdem funktioniert es nicht? Warum?

Bitte schau dir den ausgegebenen HTML-Code an. Mit Betonpfeilern winke ich ungern.

Bitte sag mir den Fehler. Natürlich habe ich auch Dein kleines Beispiel angeguckt. Und um ehrlich zu sein, es fällt mir ziemlich schwer zu verstehen, was in dem Script genau passiert.

Dann kommentiere ich es einmal:

<select name="Anrede"> <!-- Das select-Anfangstag -->  
[code lang=php]<?php  
$arr_anreden = array('Herr', 'Frau', 'Fräulein', 'Sir'); # Die Werte für die option-Elemente  
  
foreach ($arr_anreden as $str_anrede) {  
  
  echo '  <option value="'.$str_anrede.'"'; # Ausgabe von option-Anfangstag sowie dem passendem Wert fürs value-Attribut  
  
  # Wenn $_POST['Anrede'] gesetzt worden ist und dessen Wert mit dem aktuellen Wert von $str_anrede übereinstimmt …  
  if (isset($_POST['Anrede']) and $_POST['Anrede'] == $str_anrede) {  
    echo ' selected="selected"'; # … selected-Attribut (XHTML-konform) setzten  
  }  
  
  echo '>'.$str_anrede.'</option>'."\n"; # Anfangstag schließen, Text und Endtag ausgeben  
  
}  
?>

</select> <!-- Das select-Endtag -->[/code]

Und wie wird das dann aufgerufen?

Wie jedes andere PHP-Script auch.

In meinem Beispiel will ich's ja so haben: "feedback.php?id=3" usw. Und bei Dir ist das dann "feedback.php?Anrede=Frau" oder wie?

Nein, mein Beispiel muss noch an zwei Stellen verändert werden, wenn es deinen Anforderungen genügen soll:

1. Aus $_POST muss $_GET werden, da du die jeweilige ID ja grundsätzlich per GET übergibst
2. Aus der foreach-Schleife würde ich nun eine for-Schleife machen, da du damit gleich einen ansteigenden numerischen Index bei jedem Schleifendurchlauf zur Verfügung stehen hast. Diesen kannst du nutzen, um ihn mit dem übergebenen Wert von $_GET['id'] zu vergleichen und entsprechend das selected-Attribut zu setzen.

Und wenn es dann zwei Werte, wie "feedback.php?Anrede=Frau Dr." sind? Geht das dann überhaupt?

Dann wird daraus feedback.php?Anrede=Frau%20Dr., da Sonderzeichen URL-kodiert übertragen werden.

Nur leider bekommt es mein Editor nicht hin, die HTML Namen der Zeichen bspw. "&nbsp;" oder deutsche Sonderzeichen ä, ü, ö usw. gleich mit den Unicodes darzustellen.

Was heißt „mit den Unicodes“ darzustellen? Es gibt nur ein Unicode.

Soll dein Editor die Zeichen direkt darstellen oder als Zeichenreferenzen, wie z. B. &auml; für „ä“? Wenn letzteres gewünscht ist, würdest du die Vorteile von UTF-8 gar nicht nutzen.

Nachdem ich meine Seiten fertig habe, muss ich immer über "ersetzen" gehen, und die Zeichen mit dem entsprechenden Unicode ersetzen.

Was genau ersetzt du hier durch was genau?

Einen schönen Donnerstag noch.

Gruß, Ashura

--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]