Selectfeld

piti66

Erfahrenes Mitglied
Hey,

und zwar möchte ich in einem Formular in dem man Daten ändern kann bei einem Selectfeld die vorhandenen Daten anzeigen und dann halt über verschiedenen Optionen das Feld ändern können. Es soll aber eben erst der eingetragenen Daten der Datenbank angezeigt werden.

Hier mal der Code:

Code:
  		<select name="cat">
  		<option value="<? echo $row->cat; ?>" selected>
  		<option value="Party">Party</option>
  		<option value="Konzert">Konzert</option>
  		<option value="Lane">Lane</option>
  		<option value="Sonstiges">Sonstiges</option>

mfg
 
Hallo!

Möglich dass es auch anders geht, aber ich habe es so gelöst:
PHP:
<html>
<select name="cat">
	 <option value="Party"<?php if($row->cat == "Party") echo ' selected="selected"'; ?>>Party</option>
	 <option value="Konzert"<?php if($row->cat == "Konzert") echo ' selected="selected"'; ?>>Konzert</option>
	 <option value="Lane"<?php if($row->cat == "Lane") echo ' selected="selected"'; ?>>Lane</option>
	 <option value="Sonstiges"<?php if($row->cat == "Sonstiges") echo ' selected="selected"'; ?>>Sonstiges</option>
</select>
</html>
So wird der Eintrag der in der DB steht als vorselektiert angezeigt.

Gruss Dr Dau
 
Zuletzt bearbeitet:
Naja, man muss ja erstmal auf solch eine Idee kommen...... als ich es gebraucht hatte, war ich auch fast am verzweifeln. ;)

Und nicht vergessen das Thema als erledigt zu markieren.
 
Jetzt hab ich noch dass Proplem dass mit den bei ä,ü und soweiter dass mit dem Select nicht funktioniert. Wie kann man dass Problem beheben? In der Datenbank steht es richtig drin wie Lübeck zum Beispiel.
Hier mal der Code:

Code:
   <option value="Lübeck"<?php if($row->reg=="Lübeck") echo " selected"; ?>>Lübeck</option>

mfg
 
Hmm, bei mir gibt es mit Umlauten (in meinem Fall das Wort "Komödie") keine Probleme.
Was für eine Zeichencodierung gibst Du denn im <meta>-Tag deiner Seite an?
Welchen Spaltentyp und Kollation hat denn die betreffende Spalte in der DB?
 
Hey,

also das Script schreibt ja den wert mit den Umlauten korrekt in die Datenbank, aber ebend bei der automatischen Vorauswahl des Selectfelder funktioniert es nicht, wenn ich er daneben mit echo ausgebe zeigt er z.Bsp. Münster ganz genau an.

Hab in den Metatags:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

Und beim Form noch mal extra:

<form action="edit.php" method="post" accept-charset="ISO-8859-1" enctype="multipart/form-data">

mfg
 
Hmm, bist Du dir sicher dass das Problem nur bei Umlauten auftritt?
Mir fällt nämlich grad beim rumprobieren auf, dass mit $reg->spaltenname überhaupt nichts aus der DB ausgelesen wird..... nicht mal Zahlen.
Ich mochte diese Schreibweise mit dem Pfeil noch nie..... darum versuche es mal mit $reg['spaltenname'].
Was mich allerdings etwas verwundert, warum gibt er bei dir den Eintrag mit einem Echo aus?!
Denn bei mir funktioniert auch ein <?php echo $reg->spaltenname; ?> nicht.

An deinen Angaben im <meta>-Tag und im <form>-Tag liegt es jedenfalls nicht.
 
Hey,

hast wohl was mißverstanden, nicht $reg->spaltenname sondern $row->reg=="Wert".
Das $row-> kommt durch folgendes:

$result = mysql_query("select * from event where id=$id2");
$row = mysql_fetch_object($result);

Geht auf jeden Fall. Mache es nämlich immer so. Mit Befehl echo wird ganz normal der Name ausgelesen, wie z.Bsp. Lübeck.
Komisch muss irgendein Problem mit dem Select sein.Oder?
Hier nochmale in stück Code:

Code:
  <select name="reg">
  <option value="Kiel"<?php if($row->reg=="Kiel") echo " selected"; ?>>Kiel</option>
  <option value="Lübeck"<?php if($row->reg=="L&uuml;beck") echo " selected"; ?>>Lübeck</option>

Es wird immer der richtige werd mit echo ausgegeben. Kiel und Lübeck.

Ich glaub ich weiß an was es liegt! Mein HTML editor wandelt die Umlaute in HTML-Umlautcodes um, dadurch findet das Script natürlich nicht den richtigen wert. Jetzt ist die Frage wie löse ich es am besten.Idee?

mfg
 
Zuletzt bearbeitet:
Ähm *autsch*, natürlich meinte ich $row und nicht $reg. :-(
Auf jedenfall darfst Du die Umlaute in den Vergleichsstrings nicht maskieren.
In dem Formular gibt es noch mehr Felder?..... und die werden korrekt mit dem DB Inhalt gefüllt?
Und hast Du ein Eintrag wahllos aus der Mitte heraus gegriffen?
Steht der Code zum ändern im gleichem Script wie der Code zum anzeigen?
 
Zurück