Christian: Scrolling_list

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

  1. 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

    1. 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

      1. 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

        1. Kann mir denn keiner ein Beispiel schreiben ?

          Es geht um ein <SELECT> Feld.

          Christian

      2. 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

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. 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.

          1. 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

            --
            Warum nennt sich Andreas hier MudGuard?
            O o ostern ...
            Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. 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.