Announcement

Collapse
No announcement yet.

XSL flasch?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XSL flasch?

    Hallo zusammen,

    in Sachen XSL bin ich etwas neuer. Ich habe mit PHP/Ajax eine Funktion gebastelt: Es gibt zwei Select-Boxes. Wählt der User in der ersten etwas aus, wird die zweite anhand von aus der DB ermittelten Sätzen gefüllt.

    Im Firefox funktioniert das alles wunderbar, nur der fiese IE7 will einfach nicht.
    Da alle Funktionen, bis auf das XSL-File identisch mit einer anderen Funktion sind, die auch im IE7 funktioniert, kann es aus meiner Sicht nur am XSL-File liegen.

    Hier das File:

    PHP Code:
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template match="/">
          <xsl:for-each select="data/grid/row">
          <xsl:element name="OPTION">
            <xsl:attribute name="value">
              <xsl:value-of select="fprojekt_ID" />
            </xsl:attribute>
            <xsl:value-of select="fprojektKuerzel" />
          </xsl:element>
        </xsl:for-each>
      </xsl:template>
    </xsl:stylesheet>
    Habt Ihr eine Idee?

    Wird über ELEMENT.innerHTML = theDocument.transformNode(stylesheetDoc); in die bestehende Select-Box eingefügt.

    Der IE7 scheint das XSL-File gar nicht richtig zu benutzen. Er formatiert zwar mein XML, aber wenn ich weitere Elemente von Hand hinzufüge, interessiert Ihn das kein Stück.

    Schonmal vielen Dank, ich habe mir bereits die Zähne ausgebissen.

    Danke!

    Gruß

  • #2
    Das Beispiel im MSDN funktioniert im IE7 (WScript.Echo ggf. durch alert ersetzen). Evtl. liegt es an den Sicherheitseinstellungen, es lief erst nach Akzeptieren der ActiveX-Warnung.

    Versuche, sofern möglich, XSLT vom Server prozessieren zu lassen. Dann bleibt die volle Kontrolle erhalten. Client-seitiges XSLT ist IMHO nur sinnvoll, wenn man den Client kennt, also in einem konkreten Browser etwa im Intranet oder auf einem Notebook beim Außendienstler usw.

    Comment


    • #3
      Hi, vielen Dank!
      Ich habe das Ganze überprüft. Ich habe alles bereits genau so gemacht, wie es unter der MSDN steht. Das einzige, was ich jetzt noch hinzugefügt habe, ist die Fehlerabfrage. Ich habe mir erhofft, dass ich so eine detaillierte Fehlermeldung bekomme - leider bekomme ich diese nicht.
      Das seltsame ist, wie schon gesagt, dass mein Skript genau so (alle Javascript-Funktionen etc.) im IE7 laufen. Lediglich das XSL ist ein anderes.

      Hat jemand noch eine Idee?

      Comment


      • #4
        eine Sache habe ich herausgefunden. Er (IE7) hat das geänderte XSL "ignoriert" weil er das aus seinem Speicher benutzt hat. Ich muss nach jeder Änderung im XSL-File die Temporären Dateien des IE7 löschen, sonst interessiert Ihn die Änderung nicht.

        Aber mein Problem ist immernoch nicht behoben. So langsam habe ich das Gefühl, dass es nichts mit dem XSL zu tun hat. Er formartiert das XML wunderbar, so wie ich es haben will. Anzeigen tut er jedoch nichts.

        Comment


        • #5
          So, hab die Lösung!

          Der fiese IE7 hat das XSL-File im Speicher gehabt und somit dachte ich er ignoriert mein XSL.

          Das eigentliche Problem war allerdings, dass der IE7 die Funktion innerHTMl bei einer Select-Box nicht mag, sondern lediglich select.Add. Ich liefere jetzt direkt die komplette Select-Box mit Options und alles ist wunderbar..

          Trotzdem Danke!

          Comment

          Working...
          X