Scrolling_list
Christian
- perl
Hallo,
ich hab da wieder mal ne Frage die für euch spezialisten bestimmt kein Problem ist. Ich beiß mir aber schon seit 2 Tagen sie Zähne aus.
Ich hab in mittels einem Perlscript eine Textdatei in ein array eingelesen und möchte dies nun per HTML in eine 'scrolling_list' auf nen Browser ausgeben.
Das klappt auch soweit, nur macht mir die 'scrolling_list' keine Newlines. Alle Zeilen des Textfiles werden hintereinander in die Liste im Browser eingetragen. Es soll aber jede Zeile untereinander stehen, also genau so wie ich sie einlese, sollen sie ausgegeben werden. Wenn ich das Script ein der Textconsole starte stehen die Einträge untereinander.
Beispiel:
Ausgabe im Browser...
Zeile1 Zeile2 Zeile3 Zeile4 Zeile5 Zeile6 Zeile7
... ich möchte aber
Zeile1
Zeile2
Zeile2
Zeile3
Zeile4
Zeile5
Zeile6
Zeile7
Ich hoffe ihr könnt mir nen Tip geben.
Christian
Hallo Christian,
Ich hab in mittels einem Perlscript eine Textdatei in ein array eingelesen und möchte dies nun per HTML in eine 'scrolling_list' auf nen Browser ausgeben.
Das klappt auch soweit, nur macht mir die 'scrolling_list' keine Newlines. Alle Zeilen des Textfiles werden hintereinander in die Liste im Browser eingetragen.
ja das ist normal. HTML ist eine Auszeichnungssprache. Der normale Zeilenumbruh einer Textdatei hat für HTML keine andere Bedeutung als ein "Whitespace".
Es soll aber jede Zeile untereinander stehen, also genau so wie ich sie einlese, sollen sie ausgegeben werden. Wenn ich das Script ein der Textconsole starte stehen die Einträge untereinander.
In HTML gibt es eine Reihe von Möglichkeiten, das von Dir gewünschte zu erreichen. Du solltest das Sinnvollste auswählen. Grundsätzlich findest Du in SELFHTML die verschiedensten Elemente dazu im Abschnitt Elemente zur Textstrukturierung:
Beispiele:
Absätze
Listen
Zeilenumbruch
präformatierter Text
Es gibt noch viele Möglichkeiten mehr, aber unter den vier aufgezählten sollte wahrscheinlich das angemessenste HTML-Element enthalten sein.
Freundliche Grüße
Vinzenz
Vielen Dank für Deine Antwort,
das kann ich aber nicht ganz glauben, denn warum stellt mir der Browser dann die gleiche Liste in einem Textarea untereinander dar nur Listenfelder nicht ?
Mit dieser Anweisung ist die Ausgabe nebeneinander, getrennt durch Leerzeichen...
print $cgi->scrolling_list(-name=>'listenname',
-values=>@array,
-size=>20,
multiple=>'true');
Mit dieser Anweisung ist die Ausgabe untereinander...
print $cgi->textarea(-name=>'listenname',
-value=>@array,
-rows=>50,
-cols=>50);
Probiers mal aus
Danke Christian
Hallo
das kann ich aber nicht ganz glauben, denn warum stellt mir der Browser dann die gleiche Liste in einem Textarea untereinander dar nur Listenfelder nicht ?
hmm ja, vielleicht hätte ich das erwähnen sollen:
In einer Textarea hat der Zeilenumbruch die Funktion eines Zeilenumbruchs :-)
Siehe dazu SELFHTML, Textvorbelegung bei mehrzeiligen Eingabebereichen, Abschnitt Erläuterung.
Und da ich hier schon das eine oder andere Posting abgesandt habe, weiß ich
das auch aus praktischer Erfahrung ...
Freundliche Grüße
Vinzenz
Kann mir denn keiner ein Beispiel schreiben ?
Es geht um ein <SELECT> Feld.
Christian
Hi,
print $cgi->scrolling_list(-name=>'listenname',
Welches HTML-Element wird dadurch erzeugt?
-values=>@array,
Kann es sein, daß Du hier eine Referenz auf das Array statt das Array selbst übergeben willst?
cu,
Andreas
print $cgi->scrolling_list(-name=>'listenname',
Welches HTML-Element wird dadurch erzeugt?
Eine Auswahlliste.
-values=>@array,
Kann es sein, daß Du hier eine Referenz auf das Array statt das Array selbst übergeben willst?
Ja, genau so steht es auch in der Doku.
Struppi.
Hi,
Welches HTML-Element wird dadurch erzeugt?
Eine Auswahlliste.
Ah, ein select-Element.
(bin an einem Rechner ohne Perl, daher konnte ich nicht in die perldoc gucken).
-values=>@array,
Kann es sein, daß Du hier eine Referenz auf das Array statt das Array selbst übergeben willst?
Ja, genau so steht es auch in der Doku.
Dacht ich mir doch.
Bei -values=> müßte es sich m.E. um skalaren Kontext handeln, d.h. @array wird als String zusammengesetzt (ähnlich wie bei print "@array\n";).
cu,
Andreas
Ich hab in mittels einem Perlscript eine Textdatei in ein array eingelesen und möchte dies nun per HTML in eine 'scrolling_list' auf nen Browser ausgeben.
Vermutlich mit dem CGI Modul
print scrolling_list(-name=>'list_name',
print scrolling_list(-name=>'list_name',
-values=>['eenie','meenie','minie','moe'],
-default=>['eenie','moe'],
-size=>5,
-multiple=>'true',
-labels=>%labels,
-attributes=>%attributes);
Das klappt auch soweit, nur macht mir die 'scrolling_list' keine Newlines. Alle Zeilen des Textfiles werden hintereinander in die Liste im Browser eingetragen. Es soll aber jede Zeile untereinander stehen, also genau so wie ich sie einlese, sollen sie ausgegeben werden. Wenn ich das Script ein der Textconsole starte stehen die Einträge untereinander.
Dann hast du kein Array sondern einen String, evtl. musst du ihn noch splitten oder sowas.
Struppi.