Hallo
Ich habe mit PHP ein Formular erstellt.
In dem werden Daten aus einer Datenbank angezeigt. Bei den letzen beiden Formularfeldern kommen noch Auswahlmöglichkeit " " dazu. Eines der letzten beiden Felder habe ich unten eingefügt.
Das Problem ist, daß die Variable nach einem submit nicht den Wert hat, sondern %A0.
Kann man es schaffen, daß sie den Wert bekommt?
Du hast dem Browser gesagt, daß du als Value ein geschütztes Leerzeichen haben willst, und das hat er gesendet. %A0 sollte der entsprechende Code dafür sein.
Wenn du die Zeichenfolge &-n-b-s-p-; haben willst, dann mußt du das dem Browser natürlich sagen:
<option value=" ">
Auch wenn es technisch möglicherweise nicht ganz korrekt ist: Beim Empfang der Seite wird vom Browser eine Konvertierung der Zeichen vorgenommen, bevor diese genutzt werden, z.B. für die Anzeige. Dabei wird natürlich der Zeichensatz der Seite ausgewertet (Content-Encoding) - daran erkennt der Browser, was für Zeichen z.B. deutsche Umlaute sind, um sie im systemeigenen System korrekt darstellen zu können.
Weiterhin werden in diesem Schritt auch die Entities konvertiert. ä wird zu ä. & wird zu &. " wird zu ". Und wird zu einem Non-Breaking-Space (auch Shift-Space). Und das gilt auch für die Angaben in Attributen. Nicht umsonst meckert der Validator bei Parametern in der URL, daß er dort Entities findet, die er nicht kennt:
<a href="seite?var1=sowas&var2=anderes"> ist falsch.
<a href="seite?var1=sowas&var2=anderes"> ist korrekt.
Das gleiche ist bei dir das Problem.
- Sven Rautenberg