henry: cgi Ausgabe in css Bereich

Hallo,

ich möchte bestehende Webseiten von Frames befreien und alles auf css umstellen.
Hier bin ich noch ein greenhorn.

Nun gibt es mehrere <Form mit einem cgi Script, das die Ausgabe per Button in einen iframe schreibt.

Wie löse ich so etwas ?
Ein kleiner Link auf ein Beispiel wäre nett.

Gruß
        henry

  1. Wie löse ich so etwas ?
    Ein kleiner Link auf ein Beispiel wäre nett.

    Du wolltest einen Link auf ein Beispiel...

    Jörg Reinholz

    1. Hallo,

      Du wolltest einen Link auf ein Beispiel...

      Jörg Reinholz

      danke für die schnelle Antwort.

      Ajax ... ja  ... OK.
      Da ich das cgi-Script (Perl-cgi-Script) so weiter verwenden will wie es ist, muss ich die Parameter passend übergeben. Hier muss ich ja den "Parameternamen" und den "Parameter" selbst
      mit übergeben.

      kurz einmal ein Teil des aktuellen HTML Codes

        
      <FORM  name="Formular" method=get action="/cgi-bin/archiv.cgi" target="iframearchiv">  
        
      <table border="1">  
      <tr><td>Monat:</td>  
      <td>  
      <select name="monat" id="monat" size="1">  
      <option value="01">Januar   </option>  
      <option value="02">Februar  </option>  
      ......  
      </select>  
      </td>  
        
      <td>Jahr:</td>  
      <td>  
      <select name="jahr" id="jahr" size="1">  
      <option value="2014">2014</option>  
      <option value="2015">2015</option>  
      .....  
        
      
      

      1. Die "Form" kann ja wegfallen und ich müsste die select/option auch in einen div Conatiner
         setzen ... wenn ich schon dabei bin ;-) wie könnte ich auch die select/option
         verbessern/optimieren

      2. Wie muss ich die Parameter z.B. für Monat übergeben ?
      So eine Art ..

        
      xmlhttp.open("GET","/cgi-bin/archiv.cgi?"+ Monat:?auswahl?,true);
      

      Danke
           henry

      1. hi,

        1. Wie muss ich die Parameter z.B. für Monat übergeben ?
          So eine Art ..

        xmlhttp.open("GET","/cgi-bin/archiv.cgi?"+ Monat:?auswahl?,true);

          
        Nicht ganz so, aber Du bist auf dem richtigen Weg. Bei GET ist die Parameterliste der QUERY\_STRING mit Schlüssel-Werte-Paaren  
          
        ?foo=bar&dog=boo&art=spooky  
          
        für die Werte (und nur für die Werte) nutze die JS Funktion encodeURIComponent und bau den String zusammen.  
          
        MfG
        
        -- 
        [FastCGI Framework mit LoadBalancing](http://rolfrost.de/fwfast.html)  
          
        
        
        1. Hallo hotti,

          super ... funktioniert.

          für die Werte (und nur für die Werte) nutze die JS Funktion encodeURIComponent und bau den String zusammen.

          Muss ich jeden Wert "kodieren" oder nur wenn ich Umlaute/Sonderzeichen benutze ?
          Eigentlich übertrage ich nur aA-zZ/0-9.

          Danke
                henry

          1. hi,

            Muss ich jeden Wert "kodieren" oder nur wenn ich Umlaute/Sonderzeichen benutze ?
            Eigentlich übertrage ich nur aA-zZ/0-9.

            Betrachte den Unterschied betreff encodeURI() und encodeURIComponent()

            |       <=  encodeURI()  =>                |
            ?ParameterName=ParameterWertIstEineKomponente
                           | <= encodeURIComponent() => |

            Es gibt auch ein paar ASCII-Zeichen die in der Komponente encoded werden müssen, nimm einfach die Funktion und gut isses ;)

            Schöne Grüße.

            1. @@hotti:

              nuqneH

              Es gibt auch ein paar ASCII-Zeichen die in der Komponente encoded werden müssen

              Nämlich die, die in diesem Kontext Sonderzeichen sind. Sonderzeichen ≠ Nicht-ASCII-Zeichen.

              Qapla'

              --
              „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
              1. @@hotti:

                nuqneH

                Es gibt auch ein paar ASCII-Zeichen die in der Komponente encoded werden müssen

                Nämlich die, die in diesem Kontext Sonderzeichen sind. Sonderzeichen ≠ Nicht-ASCII-Zeichen.

                Verbindlich für den Kontext ist RFC 3986. Wer in seinem Programm sicherstellen kann, dass eine URI-Komponente nur Zeichen nach Pattern \w+ enthält, braucht kein Encoding.

                Im Übrigen ist für Percent-Encoding der Enctype="application/x-www-form-urlencoded" relevant und diesen Enctype gibt es auch für Request-Method POST (und damit auch das Percent-Encoding).

                In einer der älteren SELFHTML-Versionen gab es mal unter /Perl ein Script zum Parsen von POST/GET-Parametern. Wohl kaum schreibt ein heutiger Programmierer seinen Parser selbst, er verlässt sich auf Libraries (*) oder Builtin-Funktionen (**), andererseits wurden damit Elementarkenntnisse vermittelt, die heute noch gültig und beachtenswert sind.

                *) cgi-lib.pl (Steven E. Brenner), CGI.pm (Lincoln Stein), CGI::Fast
                **) PHP hat keine explizite Builtin-Funktion für den Parser, stattdessen gibt es die Arrays $_POST und $_GET, ansonsten geht PHP sehr eigenwillig mit Request-Parametern um, worauf ich in meinen Artikeln immer wieder hinweise (hier zum Beispiel

                MfG

                1. Hallo

                  **) PHP hat keine explizite Builtin-Funktion für den Parser,

                  Ach? URL und seine Bestandteile identifizieren: parse_url, Querystring maskieren: urlencode, Pfadbestandteile der URL maskieren: rawurlencode. Die letzten beiden auch mit decode-Version.

                  stattdessen gibt es die Arrays $_POST und $_GET, ansonsten geht PHP sehr eigenwillig mit Request-Parametern um

                  Was will ich denn da noch maskieren? Maskiert wird, bevor POST oder GET zu POST oder GET werden.

                  Tschö, Auge

                  --
                  Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
                  Terry Pratchett, "Wachen! Wachen!"
                  ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
  2. @@henry:

    nuqneH

    ich möchte bestehende Webseiten von Frames befreien und alles auf css umstellen.
    Hier bin ich noch ein greenhorn.

    Nun gibt es mehrere <Form mit einem cgi Script, das die Ausgabe per Button in einen iframe schreibt.

    Die Erdstrahlung wird immer stärker. Schutzschilde hoch!

    Qapla'

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
    1. Die Erdstrahlung wird immer stärker. Schutzschilde hoch!

      Ach was. Ich freue mich über jeden neuen Kunde dessen "Server" oder Server ich von den Webshells und anderen Skripten der Spammer befreien darf.

      Jörg Reinholz

  3. Hallo,

    ich möchte bestehende Webseiten von Frames befreien und alles auf css umstellen.
    Hier bin ich noch ein greenhorn.

    Macht nix, das war jeder und da lässt sich was machen ;)

    Nun gibt es mehrere <Form mit einem cgi Script,

    Warum ein extra Script und nicht der URL (Path-Komponente) selbst? Hier würde ich zuerst ansetzen, denn...

    das die Ausgabe per Button in einen iframe schreibt.

    ... hierbeit erfolgt die Ausgabe zwangsläufig immer auf derselben Seite.

    Wie löse ich so etwas ?

    Darüber nachdenken ;)

    Ein kleiner Link auf ein Beispiel wäre nett.

    Guck Dir meine Site an, z.B. das Formular für die Volltextsuche.

    Schöne Grüße.

    --
    Buchstabensuppe ist nur eine ASCII-Teilmenge.
    1. Guck Dir meine Site an, z.B. das Formular für die Volltextsuche.

      Hab nachgeschaut. Bin aber hinsichtlich der Frage auch nicht schlau geworden.

      Deshalb: Auf meiner Seite gibt es auch eine Volltextsuche. Mit so einem XMLHttpRequest-Dingens und dem Stuff aus einem Formular.

      Alles Relevante hübsch aus dem Quelltext ersichtlich.

      Jörg Reinholz

      1. Moin,

        Guck Dir meine Site an, z.B. das Formular für die Volltextsuche.

        Hab nachgeschaut. Bin aber hinsichtlich der Frage auch nicht schlau geworden.

        Deshalb: Auf meiner Seite gibt es auch eine Volltextsuche. Mit so einem XMLHttpRequest-Dingens und dem Stuff aus einem Formular.

        Alles Relevante hübsch aus dem Quelltext ersichtlich.

        Du machst das viel zu kompliziert und benötigst bereits für den Aufruf des Formulars einen Parameter. Bei meinem Formular geht das action-Attribut an action="%url%". Das ist einfach nur ein variabler Platzhalter, der überall da eingesetzt werden kann, wo der URL zur Seite selbst gebraucht wird, zB. auch für Ajax. Jeder Request, mit oder ohne Parameter geht an die Seite selbst.

        Ein Suchformular kennt genau zwei Zustände:

        1. Formular ausgeben (keine Parameter)
        2. Formular+Suchergebnis ausgeben

        Letzeres lässt sich auf einen einzigen Paramter abbilden (Schlüsselparameter: Der Name des Submit-Buttons). Ein URL ist eindeutig, der muss nicht auf Parameter umgelegt werden.

        Schöne Grüße ;)

        1. Du machst das viel zu kompliziert und benötigst bereits für den Aufruf des Formulars einen Parameter.

          Nein, eigentlich nicht. Allerdings ist der, solange ich die Suche nicht als "endgültig fertig" und "rockstabil" betrachte (und deswegen davon ausgehe, dass sich womöglich noch was ändern wird) wegen des von mir intensiv betriebenen bzw. veranlassten Cachens recht nützlich ...

          Wenn es soweit ist werde ich das Formular auch fest einbauen.

          Jörg Reinholz

          1. Hi mein Lieber Jörg aus KS,

            wieviele Unterseiten (Templates) hast Du denn? 10,50,100, 500?

            Selbst wenn es 1000 sind: Eine maschinenlesbare (und für den Menschen editierbare) Projektverwaltung macht sich immer gut. Damit gibt es lesbare URLs mit dazugehörigen Attributen wie title, descr, ... Fürs Deployment wird die Projektverwaltung per Script in eine Binary geschrieben oder nach MySQL und auf dem Server entweder komplett in den Hauptspeicher geladen oder nur die Attribute den requested URL betreffend: Je nachdem, was Du alles für die Response brauchst.

            Auf diese Art und Weise gibt es keine für die Programmlogik reservierten Parameter und jedes Model bekommt eine eigene wasserdichte Parameter-Kontrollstruktur falls Eingaben zu erwarten sind oder Ajax-Requests mit Parametern. Alles zusammen wird sehr kompakt es ergibt sich ein überschaubarer Code und aufgeräumte Verzeichnisstrukturen.

            Deine Entscheidung ;)

            1. Deine Entscheidung ;)

              Ich bin ein Freund von Ergebnissen, also eines gewissen und gesunden Pragmatismus. Universitäre Gepflogenheiten oder Buzzwortsammlungen und noch viel mehr wüste Mischungen aus den selben überlasse ich gerne anderen.

              Deine Äußerung verstehe ich so, dass das jeder mit sich selbst abmachen muss. Das ist richtig.

              Jörg Reinholz

              1. Deine Entscheidung ;)

                Ich bin ein Freund von Ergebnissen, also eines gewissen und gesunden Pragmatismus. Universitäre Gepflogenheiten oder Buzzwortsammlungen und noch viel mehr wüste Mischungen aus den selben überlasse ich gerne anderen.

                Buzzworte??? Ich biete Dir Unterstützung an. Wir könnten Beide davon profitieren.

                Schöne Grüße.