shadow: + Perl Radio Button abfragen

Hi @ all

Ich hab da mal eine Frage?
Ich möchte mit Hilfe von Radio Buttons Werte ausgeben. Es stehen 2 Möglichkeiten zur verfügung. Soweit ich auf ein Radio Button klicke, soll er mir datensätze ausgeben und die seite refreshen. Also die Buttons hab ich soweit. Ich denke auch das die in Ordnung sind.

print "<input type=radio name=methode value=h10 onClick='location.reload();'>10 Textdateien Darstellen<br>";

print "<input type=radio name=methode value=h30 onClick='location.reload();'>30 Textdateien Darstellen<br>";

So wie muss ich die If Anweisung aufbauen um die jeweiligen Radio Buttons mit einzubinden, sodass die Buttons bei klick die Werte ausgeben.

Bei mir gibt er immer beides aus also die erste Varinate und die zweite Varinate. Auch wenn ich keins von beiden Angeklickt habe.
oder er gibt garnichts aus.

Danke im vooraus.

cu shadow

  1. Ich hab da mal eine Frage?
    Ich möchte mit Hilfe von Radio Buttons Werte ausgeben. Es stehen 2 Möglichkeiten zur verfügung. Soweit ich auf ein Radio Button klicke, soll er mir datensätze ausgeben und die seite refreshen. Also die Buttons hab ich soweit. Ich denke auch das die in Ordnung sind.

    Wenn du das CGI aufrufst wird dioch die Seite quasi refreshed. Das onclick event ist überflüssig.

    So wie muss ich die If Anweisung aufbauen um die jeweiligen Radio Buttons mit einzubinden, sodass die Buttons bei klick die Werte ausgeben.

    Was für ein if Anweisung?

    Struppi.

    1. Wenn du das CGI aufrufst wird dioch die Seite quasi refreshed. Das onclick event ist überflüssig.

      Ja das ist richtig aber dann hab ich die wahl zwischen den Radio Buttons. Und wenn ich auf ein Button klicke soll die seite neu aufgebaut werden und die werte dazu anzeigen.

      Was für ein if Anweisung?

      Das könnte man doch mit einer If Anweisung machen oder etwa nicht?
      Sprich die letzten 10 Dateien oder die letzten 30 Dateien.
      Und zwischen diesen beiden Unterscheide ich ja. Mein Zeil ist es den Button anklicken, Seite neu aufbauen und nur die 10 oder 30 Dateien anzeigen zulassen.

      cu shadow

      1. Wenn du das CGI aufrufst wird dioch die Seite quasi refreshed. Das onclick event ist überflüssig.

        Ja das ist richtig aber dann hab ich die wahl zwischen den Radio Buttons. Und wenn ich auf ein Button klicke soll die seite neu aufgebaut werden und die werte dazu anzeigen.

        Das musst du im CGI Skript machen. sinnvollerweise benutzt man in Perl das CGI Modul, das macht das bereits automatisch.

        print CGI::radio_group(-name=>'group_name',
                                  -values=>['eenie','meenie','minie'],
                                  -default=>'meenie',
                                  -linebreak=>'true',
                                  -labels=>%labels);

        siehe auch: http://www.oreilly.de/catalog/perlmodger/manpage/cgi.htm#CREATING_A_RADIO_BUTTON_GROUP

        Was für ein if Anweisung?

        Das könnte man doch mit einer If Anweisung machen oder etwa nicht?
        Sprich die letzten 10 Dateien oder die letzten 30 Dateien.
        Und zwischen diesen beiden Unterscheide ich ja. Mein Zeil ist es den Button anklicken, Seite neu aufbauen und nur die 10 oder 30 Dateien anzeigen zulassen.

        das versteh ich nicht. von was für letzten 10 Dateien sprichst du?

        Struppi.

        1. Das musst du im CGI Skript machen. sinnvollerweise benutzt man in Perl das CGI Modul, das macht das bereits automatisch.

          print CGI::radio_group(-name=>'group_name',
                                    -values=>['eenie','meenie','minie'],
                                    -default=>'meenie',
                                    -linebreak=>'true',
                                    -labels=>%labels);

          siehe auch: http://www.oreilly.de/catalog/perlmodger/manpage/cgi.htm#CREATING_A_RADIO_BUTTON_GROUP

          Ok das hab ich grad mal ausprobiert. er zeigt mir jetzt die Radio Buttons an. So und nun möchte ich, wenn ich auf einen von diesen beiden buttons klicke, dass die seite neu geladen wird und die werte ausgegeben werden

          das versteh ich nicht. von was für letzten 10 Dateien sprichst du?

          Also ich hatte mal vor etwas längere zeit mal nen Problem das er mir den Pool den ich auswähle auf die nächste seite bringen sollte. Ich weiss nicht ob du dich daran noch errinnern kannst? Jedenfalls erstelle ich datein und zwar jedesmal wenn ich das Script starte. Die dienen zum anzeigen der Pools und zur erstellung der History. Und genau deswegen die If-Anweisung und die Radio Buttons für die History. Aber irgendwie bekomm ich die If-Anweisung net hin.

          cu shadow

          Struppi.

          1. Hallo shadow

            Das musst du im CGI Skript machen. sinnvollerweise benutzt man in Perl das CGI Modul, das macht das bereits automatisch.

            print CGI::radio_group(-name=>'group_name',
                                      -values=>['eenie','meenie','minie'],
                                      -default=>'meenie',
                                      -linebreak=>'true',
                                      -labels=>%labels);

            siehe auch: http://www.oreilly.de/catalog/perlmodger/manpage/cgi.htm#CREATING_A_RADIO_BUTTON_GROUP

            Ok das hab ich grad mal ausprobiert. er zeigt mir jetzt die Radio Buttons an. So und nun möchte ich, wenn ich auf einen von diesen beiden buttons klicke, dass die seite neu geladen wird und die werte ausgegeben werden

            Ich gehe mal davon aus, dass diese Radiobuttons in einem Formular sind, oder? dass heißt, wenn du es abschickst wird doch die Seite neu geladen, oder? Und dann kann deine Skript auch entsprechen den Wert ausgeben.

            print CGI::param('group_name');

            das versteh ich nicht. von was für letzten 10 Dateien sprichst du?

            Also ich hatte mal vor etwas längere zeit mal nen Problem das er mir den Pool den ich auswähle auf die nächste seite bringen sollte. Ich weiss nicht ob du dich daran noch errinnern kannst? Jedenfalls erstelle ich datein und zwar jedesmal wenn ich das Script starte. Die dienen zum anzeigen der Pools und zur erstellung der History. Und genau deswegen die If-Anweisung und die Radio Buttons für die History. Aber irgendwie bekomm ich die If-Anweisung net hin.

            Ich versteh immer noch nicht was du machen willst. Ich deute es mal so.

            1. du startest ein Skript
            2. je nach Eingabe in dem Formular wird eine HTML Seite erstellt
            3. Diese dienen zum erstellen der History?
            und ab da versteh ich nicht was du meinst, ein CGI Skript (wir reden über CGI?) hat keine History

            Struppi.

            1. Ich gehe mal davon aus, dass diese Radiobuttons in einem Formular sind, oder? dass heißt, wenn du es abschickst wird doch die Seite neu geladen, oder? Und dann kann deine Skript auch entsprechen den Wert ausgeben.

              print CGI::param('group_name');

              ah jetzt versteh ich worauf du hinaus willst. Ok hab ich vergessen zu erwähnen die Buttons werden auf der seite verwendet und sollen nicht zu einer anderen seite verlinkt werden. Die ganze Aktion soll auf der selben seite passieren.
              Ist das möglich oder muss ich eine neue Seite machen?

              Ich versteh immer noch nicht was du machen willst. Ich deute es mal so.

              1. du startest ein Skript
              2. je nach Eingabe in dem Formular wird eine HTML Seite erstellt
              3. Diese dienen zum erstellen der History?
                und ab da versteh ich nicht was du meinst, ein CGI Skript (wir reden über CGI?) hat keine History

              zu 1. ja ich starte ein script. Das skript startet und erstellt eine datei, dann wird die datei die ich erstelle eingelesen, dann such ich mir ein wert aus mit hilfe eines Pulldown menüs, dann übergebe ich den wert, dann wird mir der Pool den ich ausgewählt hab angezeigt, dann soll von dem Pool eine History erstellt werden, durch die dateien die ich immer erstelle.

              zu 2. Ich möchte dies realiesieren ohne auf eine neue Seite zu verlinken. Ich hoffe das dies möglich ist?

              zu 3. Ich erstelle selber eine History durch eigene Dateien die ich einlese.

              cu shadow

              1. ah jetzt versteh ich worauf du hinaus willst. Ok hab ich vergessen zu erwähnen die Buttons werden auf der seite verwendet und sollen nicht zu einer anderen seite verlinkt werden. Die ganze Aktion soll auf der selben seite passieren.
                Ist das möglich oder muss ich eine neue Seite machen?

                Irgendwie macht das keinen sinn. Du verwendest Formular elemente in einem CGI Skript (siehe Thema) und verwendest sie dann doch nicht?

                Es geht nicht um verlinkte Seiten, sondern du hast eine Formular mit einer Radiobuttons gruppe, du schickst das Formular ab und startest ein CGI, dass etwas macht mit der Eingabe. Du kannst in dem CGI ein neues Formular erzeugen oder dir alle Werte ausgeben lassen.

                Ich versteh immer noch nicht was du machen willst. Ich deute es mal so.

                1. du startest ein Skript
                2. je nach Eingabe in dem Formular wird eine HTML Seite erstellt
                3. Diese dienen zum erstellen der History?
                  und ab da versteh ich nicht was du meinst, ein CGI Skript (wir reden über CGI?) hat keine History

                zu 1. ja ich starte ein script. Das skript startet und erstellt eine datei, dann wird die datei die ich erstelle eingelesen, dann such ich mir ein wert aus mit hilfe eines Pulldown menüs, dann übergebe ich den wert, dann wird mir der Pool den ich ausgewählt hab angezeigt, dann soll von dem Pool eine History erstellt werden, durch die dateien die ich immer erstelle.

                Sorry, du machst mich total konfus.

                Du startestt ein CGI skript - ja
                das skript erstellt eine Datei - ja?
                dann wird die Datei eingelesen? von wem? von dem Skript?
                Wer sucht sich einen Wert aus?
                An wen wird dieser Wert übergeben?
                welchen Pool hast du dir wo ausgehsucht?
                wie wird ein Pool angezeigt? ein Foto?
                Was für ein History? die browserhistory?
                Wie soll den eine History durch Dateien erstellt werden? Entweder der Browser erstellt eine Hostory oder - da wir von CGI Programmen reden - du erstellts eine Logdatei, in der du die Aktionen abspeicherst.

                zu 2. Ich möchte dies realiesieren ohne auf eine neue Seite zu verlinken. Ich hoffe das dies möglich ist?

                du kannst keine Datei erstellen ohne eine CGI skript aufzurufen.

                zu 3. Ich erstelle selber eine History durch eigene Dateien die ich einlese.

                Du meinst eine Logdatei auf dem Server in der du die Aktionen speicherst?

                Struppi.

                1. Irgendwie macht das keinen sinn. Du verwendest Formular elemente in einem CGI Skript (siehe Thema) und verwendest sie dann doch nicht?

                  Es geht nicht um verlinkte Seiten, sondern du hast eine Formular mit einer Radiobuttons gruppe, du schickst das Formular ab und startest ein CGI, dass etwas macht mit der Eingabe. Du kannst in dem CGI ein neues Formular erzeugen oder dir alle Werte ausgeben lassen.

                  Ja ich möchte das die Werte auf der selben seite ausgegeben werden. Und dann immer wieder zwischen Button1 oder Button2 auswählen zu können.

                  Sorry, du machst mich total konfus.

                  Du startestt ein CGI skript - ja
                  das skript erstellt eine Datei - ja?
                  dann wird die Datei eingelesen? von wem? von dem Skript?
                  Wer sucht sich einen Wert aus?
                  An wen wird dieser Wert übergeben?
                  welchen Pool hast du dir wo ausgehsucht?
                  wie wird ein Pool angezeigt? ein Foto?
                  Was für ein History? die browserhistory?
                  Wie soll den eine History durch Dateien erstellt werden? Entweder der Browser erstellt eine Hostory oder - da wir von CGI Programmen reden - du erstellts eine Logdatei, in der du die Aktionen abspeicherst.

                  ja die Datei wird mit hilfe vom Script eingelesen und dann ausgegeben

                  Der Benutzer hat die Wahl durch ein Pulldown menü einen wert auszusuchen. Die werte des Pulldown menüs wird ermittelt durch die anzahl der Pools in der Datei

                  Der Wert wird auf eine neue Seite übergeben

                  ich kann einen x-beliebigen Pool aussuchen sofern er in der Datei enthalten ist. Daher kommen die Werte für das Pulldown menü

                  Der oder Die Pools werden in einer Tabelle ausgegeben
                  die Datensätze wurden mit hilfe der split anweisung geteilet und in einzelne variablen gespeichert und dann in der Tabelle ausgegeben.

                  Ich soll eine History der Pools erstellen. Und alles was ich dafür brauch um eine History zu erstellen ist eine Datei, die ich erstelle. Die datei fragt den Server (dort sind die Pools) wie der Status der einzelnen Pools ist und speichert dies in eine Datei.
                  Und mit dieser Datei möchte ich die History erstellen. Es wird jedesmal wenn ich das script starte eine neue Datei erstellt.

                  du kannst keine Datei erstellen ohne eine CGI skript aufzurufen.

                  kapier ich nicht????

                  zu 3. Ich erstelle selber eine History durch eigene Dateien die ich einlese.

                  Du meinst eine Logdatei auf dem Server in der du die Aktionen speicherst?

                  keine Logdatei, eine Datei in der die einzelnen Pools mit ihren jeweiligen Status enthalten sind.
                  Pool     zahl      zahl     zahl     zahl
                  .
                  .
                  .
                  .
                  .

                  und dies wird in einer Tabelle ausgegeben.

                  cu shadow

                  1. Hallo shadow

                    bitte noch mal von vorne, mit irgendeinem Beispiel. Eine testseite oder irgendeinem codeschnispel, mir ist nicht ansatzweise klar wovon du redest.

                    Struppi.

                    1. Hallo shadow

                      bitte noch mal von vorne, mit irgendeinem Beispiel. Eine testseite oder irgendeinem codeschnispel, mir ist nicht ansatzweise klar wovon du redest.

                      #!/usr/bin/perl

                      #Fehlerausgabe an den Browser use CGI qw/:standard/; use CGI::Carp qw(fatalsToBrowser);

                      ---> Das ist der übergebene Wert von der Seite zuvor:

                      $ausgabe=$ENV{'QUERY_STRING'};

                      @werte = split (/&/, $ausgabe); foreach $werte (@werte) {    ($varmenu, $varpool) = split (/=/, $werte[0]); }

                      ----> Dann lass ich mir den Pool anzeigen, den der Bunutzer ausgewählt hat

                      htmltag ();

                      $d=0; for ($d; $d<10; $d++) { $_DATEI="/usr/home/ronny/www/cgi-bin/system/$dir1[$d]"; }

                      print "$dir1[$d]<br>";

                      Der Wert nach dem gesucht werden soll

                      $eingabe = $varpool;

                      close(DATEI);

                      open(DATEI, "<$_DATEI") || die "Fehler beim öffnen der Datei: $DATEI - $!.\n"; while(<DATEI>) {  push(@fc,split(/\s*,\s*/,  $, 1)); }

                      for ($f; $f<= @farb-1; $f++) {     # farb.txt werte werden aufgeteilt und in ein Array gespeichert  ($name,$erkennung,$wert)=split(/,/, @farb[$f]);  @werte[$f] = $wert; }

                      $i ermittelt die Anzahl der Zeilen

                      for ($i; $i<= @fc-1; $i++) {

                      ($pool,$voll,$leer,$recy,$nutz,$gesamt)=split(/,/, @fc[$i]);

                      if ( $varpool eq $pool ) {

                      $pro40 = $gesamt*@werte[1]/100;   $pro20 = $gesamt*@werte[2]/100;

                      if ( $nutz and $gesamt < 1 ) {    print "<tr><td align=left bgcolor=#000000><font color=#FFFFFF>$pool</font></td>";    print "<td align=right bgcolor=#FFFFCC>$voll</td>";    print "<td align=right bgcolor=#FFFFCC>$leer</td>";    print "<td align=right bgcolor=#FFFFCC>$recy</td>";    print "<td align=right bgcolor=#FFFFCC>$nutz</td>";    print "<td align=right bgcolor=#FFFFCC>$gesamt</td></tr>";  }

                      elsif ( $nutz <= $pro20 ){    print "<tr><td align=left bgcolor=#ff0000>$pool</td>";    print "<td align=right bgcolor=#FFFFCC>$voll</td>";    print "<td align=right bgcolor=#FFFFCC>$leer</td>";    print "<td align=right bgcolor=#FFFFCC>$recy</td>";    print "<td align=right bgcolor=#FFFFCC><font color=#ff0000>$nutz</font></td>";    print "<td align=right bgcolor=#FFFFCC>$gesamt</td></tr>";  }

                      elsif ( $nutz <= $pro40 ){    print "<tr><td align=left bgcolor=#ffcc00>$pool</td>";    print "<td align=right bgcolor=#FFFFCC>$voll</td>";    print "<td align=right bgcolor=#FFFFCC>$leer</td>";    print "<td align=right bgcolor=#FFFFCC>$recy</td>";    print "<td align=right bgcolor=#FFFFCC><font color=#ff6600>$nutz</font></td>";    print "<td align=right bgcolor=#FFFFCC>$gesamt</td></tr>";  }

                      elsif ( $nutz > $pro40 ) {    print "<tr><td align=left bgcolor=#99ff00>$pool</td>";    print "<td align=right bgcolor=#FFFFCC>$voll</td>";    print "<td align=right bgcolor=#FFFFCC>$leer</td>";    print "<td align=right bgcolor=#FFFFCC>$recy</td>";    print "<td align=right bgcolor=#FFFFCC>$nutz</td>";    print "<td align=right bgcolor=#FFFFCC>$gesamt</td></tr>";

                      }

                      }

                      }

                      ----> hier erstelle ich die Radio Buttons

                      print "<p><h4>History erstellen mit den letzten: </h4></p>"; print "<p><h4>";

                      print "<input type=radio name=methode value=h10 onClick='location.reload();'>10 Erstellten Textdateien<br>"; print "<input type=radio name=methode value=h30 onClick='location.reload();'>30 Erstellten Textdateien<br>";

                      print CGI::radio_group(-name=>'history',                           -values=>['10 Textdateien anzeigen','30 Textdateien anzeigen'],                           -linebreak=>'true',                           -labels=>%labels);

                      ##############################################################################################################

                      print "<br><br>Ausgabe des Pools<br><br>";

                      ##############################################################################################################

                      ----> dann mach ich den ganzen spass nochmal nur diesmal mit einer Schleife für die jeweiligen Radio Buttons. In den fall 10 mal und weiter unten nochmal für 30. Und dann würde die History fertig sein.

                      if ($value=h30) {

                      htmltag ();    print "<br><br>"; $d=0; for ($d; $d<10; $d++) { $_DATEI="/usr/home/ronny/www/cgi-bin/system/$dir1[$d]";

                      $eingabe = $varpool;

                      close(DATEI);

                      open(DATEI, "<$_DATEI") || die "Fehler beim öffnen der Datei: $DATEI - $!.\n"; while(<DATEI>) {  push(@fc,split(/\s*,\s*/,  $, 1)); }

                      for ($f; $f<= @farb-1; $f++) {  ($name,$erkennung,$wert)=split(/,/, @farb[$f]);  @werte[$f] = $wert; }

                      for ($i; $i<= @fc-1; $i++) {

                      ($pool,$voll,$leer,$recy,$nutz,$gesamt)=split(/,/, @fc[$i]);

                      if ( $varpool eq $pool ) {

                      $pro40 = $gesamt*@werte[1]/100;   $pro20 = $gesamt*@werte[2]/100;

                      if ( $nutz and $gesamt < 1 ) {    print "<tr><td align=left bgcolor=#000000><font color=#FFFFFF>$pool</font></td>";    print "<td align=right bgcolor=#FFFFCC>$voll</td>";    print "<td align=right bgcolor=#FFFFCC>$leer</td>";    print "<td align=right bgcolor=#FFFFCC>$recy</td>";    print "<td align=right bgcolor=#FFFFCC>$nutz</td>";    print "<td align=right bgcolor=#FFFFCC>$gesamt</td></tr>";  }

                      elsif ( $nutz <= $pro20 ){    print "<tr><td align=left bgcolor=#ff0000>$pool</td>";    print "<td align=right bgcolor=#FFFFCC>$voll</td>";    print "<td align=right bgcolor=#FFFFCC>$leer</td>";    print "<td align=right bgcolor=#FFFFCC>$recy</td>";    print "<td align=right bgcolor=#FFFFCC><font color=#ff0000>$nutz</font></td>";    print "<td align=right bgcolor=#FFFFCC>$gesamt</td></tr>";  }

                      elsif ( $nutz <= $pro40 ){    print "<tr><td align=left bgcolor=#ffcc00>$pool</td>";    print "<td align=right bgcolor=#FFFFCC>$voll</td>";    print "<td align=right bgcolor=#FFFFCC>$leer</td>";    print "<td align=right bgcolor=#FFFFCC>$recy</td>";    print "<td align=right bgcolor=#FFFFCC><font color=#ff6600>$nutz</font></td>";    print "<td align=right bgcolor=#FFFFCC>$gesamt</td></tr>";  }

                      elsif ( $nutz > $pro40 ) {    print "<tr><td align=left bgcolor=#99ff00>$pool</td>";    print "<td align=right bgcolor=#FFFFCC>$voll</td>";    print "<td align=right bgcolor=#FFFFCC>$leer</td>";    print "<td align=right bgcolor=#FFFFCC>$recy</td>";    print "<td align=right bgcolor=#FFFFCC>$nutz</td>";    print "<td align=right bgcolor=#FFFFCC>$gesamt</td></tr>";  }

                      }

                      }}}

                      #######################################################################################################################

                      elsif  ($value=h30) {  htmltag ();    print "<br><br>"; $d=0; for ($d; $d<30; $d++) { $_DATEI="/usr/home/ronny/www/cgi-bin/system/$dir1[$d]";

                      $eingabe = $varpool;

                      close(DATEI);

                      open(DATEI, "<$_DATEI") || die "Fehler beim öffnen der Datei: $DATEI - $!.\n"; while(<DATEI>) {  push(@fc,split(/\s*,\s*/,  $, 1)); }

                      for ($f; $f<= @farb-1; $f++) {  ($name,$erkennung,$wert)=split(/,/, @farb[$f]);  @werte[$f] = $wert; }

                      for ($i; $i<= @fc-1; $i++) {

                      ($pool,$voll,$leer,$recy,$nutz,$gesamt)=split(/,/, @fc[$i]);

                      if ( $varpool eq $pool ) {

                      $pro40 = $gesamt*@werte[1]/100;   $pro20 = $gesamt*@werte[2]/100;

                      if ( $nutz and $gesamt < 1 ) {    print "<tr><td align=left bgcolor=#000000><font color=#FFFFFF>$pool</font></td>";    print "<td align=right bgcolor=#FFFFCC>$voll</td>";    print "<td align=right bgcolor=#FFFFCC>$leer</td>";    print "<td align=right bgcolor=#FFFFCC>$recy</td>";    print "<td align=right bgcolor=#FFFFCC>$nutz</td>";    print "<td align=right bgcolor=#FFFFCC>$gesamt</td></tr>";  }

                      elsif ( $nutz <= $pro20 ){    print "<tr><td align=left bgcolor=#ff0000>$pool</td>";    print "<td align=right bgcolor=#FFFFCC>$voll</td>";    print "<td align=right bgcolor=#FFFFCC>$leer</td>";    print "<td align=right bgcolor=#FFFFCC>$recy</td>";    print "<td align=right bgcolor=#FFFFCC><font color=#ff0000>$nutz</font></td>";    print "<td align=right bgcolor=#FFFFCC>$gesamt</td></tr>";  }

                      elsif ( $nutz <= $pro40 ){    print "<tr><td align=left bgcolor=#ffcc00>$pool</td>";    print "<td align=right bgcolor=#FFFFCC>$voll</td>";    print "<td align=right bgcolor=#FFFFCC>$leer</td>";    print "<td align=right bgcolor=#FFFFCC>$recy</td>";    print "<td align=right bgcolor=#FFFFCC><font color=#ff6600>$nutz</font></td>";    print "<td align=right bgcolor=#FFFFCC>$gesamt</td></tr>";  }

                      elsif ( $nutz > $pro40 ) {    print "<tr><td align=left bgcolor=#99ff00>$pool</td>";    print "<td align=right bgcolor=#FFFFCC>$voll</td>";    print "<td align=right bgcolor=#FFFFCC>$leer</td>";    print "<td align=right bgcolor=#FFFFCC>$recy</td>";    print "<td align=right bgcolor=#FFFFCC>$nutz</td>";    print "<td align=right bgcolor=#FFFFCC>$gesamt</td></tr>";  }

                      }

                      }}}

                      print "</h4></p>";

                      ---->Hier erstelle ich die Spalten Überschriften als sub routine

                      sub htmltag { #################################################

                      Ausgabe der Spalten Köpfe in HTML-Tag

                      ################################################# print <<"Page_Done";

                      <HTML> <HEAD><TITLE>Bandpoolabfrage</TITLE></HEAD> <META CONTENT="300;HREF=http://131.0.3.52/ronny/www/cgi-bin/system/StartFormular.cgi"> <BODY bgcolor="c0c0c0"> <table border=0 cellspacing=2 frame=void rules=rows>     <tr>  <th width=170 bgcolor=#000000><FONT COLOR=#FFFFFF>Pool Name</FONT></th>  <th width=140 bgcolor=#000000><FONT COLOR=#FFFFFF>Voll</FONT></th>  <th width=140 bgcolor=#000000><FONT COLOR=#FFFFFF>Leer</FONT></th>  <th width=140 bgcolor=#000000><FONT COLOR=#FFFFFF>Recycelt</FONT></th>  <th width=140 bgcolor=#000000><FONT COLOR=#FFFFFF>Nutzbar</FONT></th>  <th width=140 bgcolor=#000000><FONT COLOR=#FFFFFF>Gesamt</FONT></th>     </tr> </BODY> </HTML>

                      Page_Done #################################################

                      Schließen des HTML-Tag

                      ################################################# }

                      ---> und damit lese ich das Verzechniss aus um die Textdateien die ich erstelle anzuzeigen

                      sub datei { #################################################

                      Verzeichniss Auslesen nach txt Dateien

                      #################################################

                      $dir = '/usr/home/ronny/www/cgi-bin/system/';

                      @dir = (); opendir DIR , $dir || die "Fehler: $!"; for (readdir(DIR)) { next unless /.+.txt/i; push @dir ,$_ } closedir DIR;

                      @dir1=reverse(@dir); #################################################

                      Verzeichniss Auslesen nach txt Dateien

                      ################################################# }

                      Nun frag ich mich ob es möglich ist die ganze Sache auf einer Seite zu machen oder muss ich zwangsweise auf eine neue um dort die ergebnisse anzeigen zu lassen. Aber es müsste doch möglich sein die ganze Ausgabe auf der selben seite zu machen oder? Und mit der If-Anweisung bekomm ich irgendwie nicht richtig hin!

                      cu shadow

                      1. Ich sach mal, hart. Was du da programmierst ist ziemlich verbesserungswürdig.

                        Ohne use strict und Warnungen solltest du gar nicht erst angfangen umfangreichere Skripte zu schreiben (es sei den du hälst dich für genial). du wirst viele Fehler nur sehr schwer finden . Dann bindest du Module ein die du nicht verwendest.

                        Um das ganze skript zu kommentieren brauch ich 'n ganzen Tag. Aber ein bisschen...

                        #!/usr/bin/perl

                        #Fehlerausgabe an den Browser
                        use CGI qw/:standard/;
                        use CGI::Carp qw(fatalsToBrowser);

                        Also:

                        #!/usr/bin/perl -w

                        use strict;
                        use CGI qw/:standard/;

                        ---> Das ist der übergebene Wert von der Seite zuvor:

                        $ausgabe=$ENV{'QUERY_STRING'};

                        @werte = split (/&/, $ausgabe);
                        foreach $werte (@werte)
                        {
                           ($varmenu, $varpool) = split (/=/, $werte[0]);
                        }

                        Keine Ahnung was du da machst, aber es sieht so aus, als ob du das letzte CGI Parameter paar an $varmenu und $varpool übergibst und alle anderen werden verworfen.

                        Das CGI Modul hat einen Haufen funktionen u.a. für sowas.

                        my $varpool = CGI::param('menu');

                        keine Ahnung wie die CGI Parameter heißen.

                        ----> Dann lass ich mir den Pool anzeigen, den der Bunutzer ausgewählt hat

                        htmltag ();

                        $d=0;
                        for ($d; $d<10; $d++) {
                        $_DATEI="/usr/home/ronny/www/cgi-bin/system/$dir1[$d]";
                        }

                        print "$dir1[$d]<br>";

                        Was die Scheleife soll ist mir auch nicht klar. du weist der Variabel $_DATEI den Wert des 10. eintrages des Array @dir1 zu.

                        1. In perl funktionieren so schleifen wesentlich einfacher:

                        foreach my $d(0.. 10)
                        {

                        }

                        open(DATEI, "<$_DATEI") || die "Fehler beim öffnen der Datei: $_DATEI - $!.\n";
                        while(<DATEI>)
                        {
                         push(@fc,split(/\s*,\s*/,  $_, 1));
                        }

                        for ($f; $f<= @farb-1; $f++) {     # farb.txt werte werden aufgeteilt und in ein Array gespeichert
                        ($name,$erkennung,$wert)=split(/,/, @farb[$f]);
                        @werte[$f] = $wert;
                        }

                        Auch diese Schelifen gehen in Perl einfacher.

                        Der ganze code ist unnötig aufbegbläht, der HTML code ist altertümlich.
                        Du solltest dich ausführlich mit Perl beschäftigen, evtl. mal ein gutes Perl Buch lesen und dich mit dem CGI Modul auseindersetzten. Der Code ist ein katastrophe.

                        Nun frag ich mich ob es möglich ist die ganze Sache auf einer Seite zu machen oder muss ich zwangsweise auf eine neue um dort die ergebnisse anzeigen zu lassen. Aber es müsste doch möglich sein die ganze Ausgabe auf der selben seite zu machen oder?

                        Wenn du ein neues  Ergebnis haben willst, musst du natürlich die Abfrage nochmal neu starten. Die Seite, wie du es bezeichnest, ist ein vom CGI skript ausgegebener code, der statisch in dem Browser angezeigt wird. Danach ist das Skript beendet. In der Seite kannst du nur Veränderungen machen, mit Javascript, das aber auch dein CGI Programm erzegen muss.

                        Struppi.

                        1. Ja Danke werd ich machen, wenn ich mal die Zeit dazu finde aber momentan hab ich dafür keine Zeit da ich bald fertig werden muss.

                          klar haben da ein paar dinge gefehlt hab auch die etwas unwesentlichen Sachen rausgelöscht da die grad nich das Problem waren.

                          Ich bin auch kein Perl profi, ich hab ne Aufgabe bekommen die ich mit Perl machen sollte und dann hab ich realtiv wichtigste zu Perl und mein Thema rausgesucht. Da ich nich unbegrenzt viel Zeit hab mich mit der ganzen Tematik auseinander zusetzten.

                          Naja dann werd ich halt weiter überlegen müssen. Trotzdem Danke

                          cu shadow

                          1. Ja Danke werd ich machen, wenn ich mal die Zeit dazu finde aber momentan hab ich dafür keine Zeit da ich bald fertig werden muss.

                            Das ist klar, aber wie gesagt ohne die Grundhilfsmittel zum Fehler suchen, wirst du wesentlich länger brauchen. Sobald du irgendwo einen Tippfehler machst, kann es Stunden dauern bis du merkst wo das Problem liegt. Mit use strict wird das Programm kann nicht gestartet.

                            Wie gesagt, das was du willst - zumindest so wie ich es verstehe - funktioniert nicht ohne das du das CGI skript neu startest - kein JS reload, sondern du musst das Skript nochmal starten.

                            Struppi.

  2. Hallo shadow,

    print "<input type=radio name=methode value=h10 onClick='location.reload();'>10 Textdateien Darstellen<br>";

    print "<input type=radio name=methode value=h30 onClick='location.reload();'>30 Textdateien Darstellen<br>";

    Mit reload() wird die Seite einfach neu geladen. Die Parameter werden dann natürlich nicht übertragen. Dazu musst Du das Formular mit submit() abschicken.
    Besser wäre es allerdings, wenn Du ohne Javascript auskommen würdest, indem Du z.b. Submit-Buttons verwendest:
    <input type="submit" name="anzahl" value="10">

    Grüße

    Daniel