Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#4

Re: Knoten filtern über Checkboxen in XML Datei

  Alt 4. Mai 2006, 20:20
Ich schicke dir mal meinen Schichtplan, dann stellst du solche Fragen, wenn ich daheim bin.
Also, hier erst mal eine Notlösung (muss gleich pennen, habe morgen Frühschicht ):

XML-Code:
<xsl:template match="log">
  <html>
  <head>
     

     <script type="text/javascript"><![CDATA[
     
        function toggle(obj)
        {
           cb = document.getElementById(obj + "_cb");
           if (cb == null) return;
           
           cells = document.getElementsByTagName("TR");
           for (i = 0; i < cells.length - 1; i++)
           {
              if (cells[i].getAttribute("id") == obj)
              {
                 cells[i].style.display = (cb.checked)?"":"none";
              }
           }
        }
     
     ]]></script>
  </head>
  <body>
     <input type="checkbox" id="Debug_cb" checked="checked" onclick="toggle('Debug');"/> Debug


     <input type="checkbox" id="Info_cb" checked="checked" onclick="toggle('Info');"/> Informationen


     <input type="checkbox" id="Task_cb" checked="checked" onclick="toggle('Task');"/> Aufgaben


     <input type="checkbox" id="Warning_cb" checked="checked" onclick="toggle('Warning');"/> Warnungen


     <input type="checkbox" id="Error_cb" checked="checked" onclick="toggle('Error');"/> Fehler




     
</xsl:template>


<xsl:template match="Info|Task|Error|Warning|Debug|Hint|Start|Ende">
   <tr>
      <xsl:attribute name="class">
         
      </xsl:attribute>



      <xsl:attribute name="id"><xsl:value-of select="name()"/></xsl:attribute>



      <td><xsl:value-of select="name()"/></td>
      <td><xsl:value-of select="@TS"/></td>
      <td><xsl:apply-templates /></td>
   </tr>
</xsl:template>
Wie du hoffentlich siehst, habe ich ein weiteres Attribut ("id") für jede Tabellenzeile (tr) erstellt, dass als Inhalt den Namen der Aktion bekommt (Info, Warning, usw.). Oben in der HTML-Seite sind entsprechende Checkboxen ergänzt, die auch den Namen tragen (mit "_cb"-Postfix).
Klickst du eine Checkbox an, dann toggelt das Skript los: Es ermittelt den Status der gewählten Checkbox, sucht sich dann alle Tabellenzeilen und schaltet die auf sichtbar oder unsichtbar.

Bisher aufgetretenes Problem: Wenn du eine Box abwählst und die Seite per F5 neu lädtst, dann baut sich der XML-Code komplett auf, aber die Box bleibt abgewählt. In dem Fall musst du 2x klicken, um die unerwünschten Infos zu verbergen. Wenn dir das reicht, soll es mir recht sein.
  Mit Zitat antworten Zitat