eeeve: Cocoon erzeugt html, das soll in bestimmten <div> Tag

hallo allerseits

Fogendes Konstrukt liegt vor :
Webserver incl. Cocoon zum xml/xsl verarbeiten, wobei dynamisch Inhalte aus einer DB geholt werden.
Dabei wird ja eine html seite generiert, welche dann im Browser gezeigt wird. Soweit klappt's. Nun möchte ich aber diese Datei in einem bestimmten Layer/div anzeigen!
Wie kann ich das bewerkstelligen?

danke
eeeve

  1. hallo allerseits

    Fogendes Konstrukt liegt vor :
    Webserver incl. Cocoon zum xml/xsl verarbeiten, wobei dynamisch Inhalte aus einer DB geholt werden.
    Dabei wird ja eine html seite generiert, welche dann im Browser gezeigt wird. Soweit klappt's. Nun möchte ich aber diese Datei in einem bestimmten Layer/div anzeigen!
    Wie kann ich das bewerkstelligen?

    danke
    eeeve

    1. UUps, zu schnell mit dem Finger

      Also, dazu musst du dein XSLT-Stylesheet entsprechend manipulieren, dass du zur Transformation benutzt. Insofern ist das also eher ein HTML-Problem oder ein XSLT-Problem, falls du nicht weisst, was du genau machen musst.

      Aber wo genau dein Problem liegt wird nicht klar aus deinen Angaben.

      Gruß
      Franz

      1. Hallo fjh,

        Also, dazu musst du dein XSLT-Stylesheet entsprechend manipulieren

        Die .xsl Datei erzeugt derzeit eine komplette html Seite. Das soll aber keine Seite, sondern der Inhalt eines bestehenden Layers werden.

        falls du nicht weisst, was du genau machen musst.

        Das ist wohl mein Problem :(

        mfg
        eeeve

  2. hallo,

    Fogendes Konstrukt liegt vor :
    Webserver incl. Cocoon zum xml/xsl verarbeiten, wobei dynamisch Inhalte aus einer DB geholt werden.
    Dabei wird ja eine html seite generiert, welche dann im Browser gezeigt wird. Soweit klappt's. Nun möchte ich aber diese Datei in einem bestimmten Layer/div anzeigen!
    Wie kann ich das bewerkstelligen?

    wenn ich das richtig verstanden habe, dann (da du apache benutzt) könntest du etwas  per SSI benutzen:
    <div><!--#include virtual="/daten.xml" --></div>
    ich weiss nciht ob das geht, aber theoretisch sollte das funktionieren.

    grüße
    thomas

    1. Hi Thomas, hi eeeve,

      Webserver incl. Cocoon zum xml/xsl verarbeiten,

      wie funktioniert diese Einbindung? Ist das CGI? Ein Modul? Ein Handler?

      wenn ich das richtig verstanden habe, dann (da du apache benutzt)

      Welche Version? 1.3 oder 2.0?

      könntest du etwas  per SSI benutzen:

      In Apache 1.3 kann ein Request nicht durch mehr als einen Handler laufen.
      Falls Cocoon einen Handler benutzt, wäre anschließend kein SSI mehr über
      das Ergebnis möglich.

      In Apache 2.0 soll so etwas kein Problem mehr sein.

      Viele Grüße
            Michael

      1. Hallo Michael

        wie funktioniert diese Einbindung? Ist das CGI? Ein Modul? Ein Handler?

        Also: es wird per submit eine .xml Datei gestartet, welche die DB Anfragen erledigt und anschliessend werden diese Daten ueber eine .xsl Datei formatiert an den Client zurueckgegeben.
        Momentan so implementiert
        <form name="BeitragForm" action="beitrag.xml" method="post" target="haupt">
        <input type="hidden" name="Beitrag" value=""/>
        .. wobei target=haupt auf einen Frame weist.

        Welche Version? 1.3 oder 2.0?

        Apache 1.3.14
        Cocoon 1.8
        JSDK 2.0
        JDK 1.1.8

        mfg
        eeeve

      2. hallo Michael,

        Webserver incl. Cocoon zum xml/xsl verarbeiten,

        wie funktioniert diese Einbindung? Ist das CGI? Ein Modul? Ein Handler?

        cocoon ist ein servlet.
        ich habe JServ und in der config steht
        ApJServAction .xml /servlets/org.apache.cocoon.Cocoon
        Action cocoon /servlet/org.apache.cocoon.Cocoon
        AddHandler cocoon xml

        ich habe es jetzt ausprobiert mit

        apache 1.3.12
        JServ 1.1.2
        cocoon 1.8.2

        und es funktioniert  mit
        <!--#include virtual="test.xml"-->

        grüße
        Thomas

        1. hallo thomas

          ich habe es jetzt ausprobiert mit

          apache 1.3.12
          JServ 1.1.2
          cocoon 1.8.2

          und es funktioniert  mit
          <!--#include virtual="test.xml"-->

          evee hat doch gesagt, dass sein xls die ganze html datei generiere.
          <html>
          [...]
          </html>

          wenn du es mit einem include löst (oder heisst das lösen tust? *g*), sieht es dann doch so aus:
          <div>
          <html>
          [...]
          [/html]
          </div>

          ist das w3c conform?

          grüessli und bis montag
          have a nice WE

          Siramon, ja der aus der schweiz (und die fliegt jetzt wieder! *g*)

          1. hallo Siramon,

            und es funktioniert  mit
            <!--#include virtual="test.xml"-->

            evee hat doch gesagt, dass sein xls die ganze html datei generiere.

            ja, habe ich auch gemacht.

            wenn du es mit einem include löst (oder heisst das lösen tust? *g*), sieht es dann doch so aus:
            <div>
            <html>
            [...]
            [/html]
            </div>

            ja.

            ist das w3c conform?

            nein.
            und?
            ich habe das mit NS 4.6, NS 6.1, IE 4, IE 5.5, Opera 5.02, Amaya 5.1 getestet. Alle konnten die Seite ohne Probleme darstellen.
            Es ist gut dass der Standard gibt und man sollte sich daran halten wenn's geht. Aber wenn es nicht anders geht, dass sollte man nicht zögern ihn auch mal links liegen lassen.

            grüße
            thomas

            Siramon, ja der aus der schweiz (und die fliegt jetzt wieder! *g*)

            aus solchen kleinen "zwsichengesprächen" merkt man erst wie sehr es euch der "Glanz und Fall der Swissair" getroffen hat.

            1. hallo Siramon& Thomas,

              und es funktioniert  mit
              <!--#include virtual="test.xml"-->
              <div>
              <html>
              [...]
              [/html]
              </div>

              .. hab das gerade mal auprobiert, also einen Layer Bereich in meinem html File definiert und dann wie oben beschrieben mit dem include virtual das xml File angegeben. Der Layer bleibt leider leer:(
              So sieht der Aufruf bei mir aus
              <form name="BF" action="beitrag.xml" method="post" target="Name das div layers">
                <input type="hidden" name="ID" value=""/>
              </form>

              onClick="SubmitForm('aktuelles');"

              function SubmitForm(inhalt) {
                  document.BeitragForm.BID.value = inhalt;
                  document.BeitragForm.submit();
              }

              was mache ich in dem Zusammenhang falsch ?

              vielen Dank eeeve

              1. hallo,

                » So sieht der Aufruf bei mir aus

                <form name="BF" action="beitrag.xml" method="post" target="Name das div layers">
                  <input type="hidden" name="ID" value=""/>
                </form>

                was mache ich in dem Zusammenhang falsch ?

                du hast eigentlich nicht gesagt wie du deine datei einbinden willst. zumindest ich habe das bisher nicht so verstanden, dass du ein abgesendetes formular einbinden möchtest.

                und wenn du ein formular absendest dann holst du eben nicht sondern schickst die datei (zumindest mit 'post'). das ist wohl ein unterschied.

                ich verstehe eigentlich jetzt wirlich nicht mehr was du machen möchtest.
                in welche datei liegt dein formular und wo dein layer?
                es mag sein, dass ich mich irre, aber ich sehe auch nicht wo du dein formular abschickst. es kommt der name BF nirgends vor in deinem geposteten javascript.

                grüße
                thomas

                1. hallo thomas,

                  du hast eigentlich nicht gesagt wie du deine datei einbinden willst. zumindest ich habe das bisher nicht so verstanden, dass du ein abgesendetes formular einbinden möchtest.

                  Muss auch nicht, war nur ein Versuch.

                  Mein Bestreben geht dahin, dass ein Beitrag ( gespeichert in einer Oracle DB ) in einem bestimmten Layer angezeigt wird. Momentan wird der Beitrag ueber "absenden Formular" durch das xml File erzeugt und ersetzt die aktuelle Seite.
                  Das soll nicht so sein, sondern die Daten sollen in einen bestehenden Layer geschrieben werden. Die vorangegangene Version der Seite beruhte auf einem Frameset( da war es kein Problem), die aktuelle Seite definiert verschiedene Layer, bestehend aus Schaltflaechen und dem "Beitragslayer".
                  Ob nun die Definition des Formulars noch notwendig ist, weiss ich derzeit nicht.
                  Uebrigens funktioniert der <!--#include virtual="beitrag.xml?ID=aktuelles"--> Befehl nun auch bei mir.( ssi am Server konfiguriert )
                  Diese Variante ist beim laden der Seite perfekt. Im Grunde soll beim klick auf einen Button das gleiche wie beim Laden der Seite passieren, nur mit dem Unterschied, dass eine ander ID mitgegeben wird.
                  Gibt es sowas wie einen "refresh" auf einen Layer?

                  vielen Dank
                  eeeve

                  1. hallo eeeve(?)

                    Uebrigens funktioniert der <!--#include virtual="beitrag.xml?ID=aktuelles"--> Befehl nun auch bei mir.( ssi am Server konfiguriert )

                    klar geht das, du kannst ja parameter immer mitgeben und beim cocoon hast du auch die möglichkeit diese parameter auch auszuwerten.

                    Gibt es sowas wie einen "refresh" auf einen Layer?

                    nein, du kannst den layer mittels javascript nur neu schreiben.

                    grüße
                    thomas

                    1. hallo thomas (!)

                      nein, du kannst den layer mittels javascript nur neu schreiben.

                      Layer neu schreiben funktioniert, aber die dynamisch zusammengesetzte Anweisung

                      datei='beitrag.xml';
                      beitrag='aktuelles';

                      document.writeln('<!--');
                      document.writeln('#include virtual="'+datei+'?');
                      document.writeln('ID='+beitrag+'"-->');

                      klappt nicht. Ist das der falsche Ansatz?

                      danke
                      yvonne

                      1. hallo Yvonne,

                        nein, du kannst den layer mittels javascript nur neu schreiben.
                        Layer neu schreiben funktioniert, aber die dynamisch zusammengesetzte Anweisung

                        klappt nicht. Ist das der falsche Ansatz?

                        ja, das kann nicht klappen, denn der javascript wird auf der client-seite ausgeführt, also nach dem die html im browser angekommen ist, da kann man natürlich keine SSI mehr ausführen.
                        du könntest nur versuchen nicht nur den layer, sondern die ganze seite nau laden, wobei ich nicht weiss ob das noch sinnvoll ist.

                        grüße
                        thomas - der auch im RL thomas ist - ;-)

            2. hallo thomas

              aus solchen kleinen "zwsichengesprächen" merkt man erst wie sehr es euch der "Glanz und Fall der Swissair" getroffen hat.

              war irgendwie schon ein schock...
              die tolle schweiz mit dem vielen geld kriegt es nicht mal fertig, dass ihre "national-"airline fliegt.

              ok es war missmanagement, aber der staat hat bei uns in vielen sachen die finger drin.

              ma kucken wie es jetzt mit der swiss weitergeht.

              grüsse

              siramon, ja der aus der svizzera