Siechfred: Zeilenumbruch in Formular

Beitrag lesen

Hell-O!

Ich habe eine <select> Auswahlliste in der beispielsweise steht:
Zeile 1: 6x 117GB Software Raid (Raid5) SATA II
Zeile 2: 3x 37GB Hardware Raid (Raid1) SCA
Die Daten such ich mir per JavaScript aus mehreren anderen Textfeldern und Listen zusammen und füge sie der Auswahlliste an.

Wie funktioniert das? Der User wählt aus verschiedenen Textfeldern und Listen etwas zusammen? Warum speicherst du es dann noch in einer Auswahlliste?

Das Ganze speicher ich dann in meine Datenbank.
[...]
1 | 6x 117GB Software Raid (Raid5) SATA II 3x 37GB Hardware Raid (Raid1) SCA

Das Datenbankdesign ist nicht optimal, Stichwort Normalisierung. Du speicherst Daten so, wie du sie später dargestellt haben möchtest, trennst also nicht zwischen Datenhaltung und -präsentation. Ich würde so herangehen:

Tabelle drives:
ID | Computer-ID | Anzahl | Groesse | RAID-Level | Bus-Typ

Deine Datensätze sähen dann so aus:

1 | 1 | 6 | 117 | 5 | SATA II
2 | 1 | 3 |  37 | 1 | SCA

Damit hättest du dein Darstellungsproblem nicht mehr.

Natürlich könntest du noch weiter normalisieren, indem du z.B. für Bus-Typ eine eigene Tabelle anlegst.

So wird gespeichert (alles in einem String).
Funktioniert wunderbar und ohne Probleme.

Es funktioniert zwar, aber eben nicht ohne Probleme :)

Nur wenn ich das Ganze wieder auslesen will, dann macht er natürlich keine Zeilenumbrüche wann er es soll.

Warum auch, du hast keine gespeichert.

Ich habe mir überlegt eine Art "Zeiger" einzubauen.
Also immer wenn ein § im String vorkommt heißt das: Zeilenumbruch.
Den String nach den § zu überprüfen denk ich ist nicht das Problem.
Nur wie mach ich dann einen Zeilenumbruch?

Mit Hilfe einer geeigneten Stringfunktion, String.replace bietet sich an. Allerdings würde ich zunächst am Konzept etwas ändern und nur, wenn das nicht mehr möglich ist, die genannte Krücke wählen.

Siechfred

--
Ich bin strenggenommen auch nur interessierter Laie. (molily)
Zitat des Tages || Falle Aufteilungsbescheid || RT 221 Erfurt-Altstadt i.V.