[LÖSUNGSVORSCHLAG] Fehler in interaktiver Tabelle

Moderator: MOD-Team

[LÖSUNGSVORSCHLAG] Fehler in interaktiver Tabelle

Beitragvon Georg » Mo 5. Mai 2008, 22:40

Hallo,

in einem Projekt bin ich auf ein Problem mit der interaktiven Tabelle gestoßen, das hier auch schon mal geschildert wurde.
Wenn man mehr als eine interaktive Tabelle auf eine Seite plaziert, so werden im IE die Daten der zuletzt eingefügten Tabelle in die erste plaziert, die übrigen Tabellen bleiben leer. Im FF werden alle Tabellen korrekt angezeigt.
Der Fehler wird verursacht durch eine fehlerhafte Programmierung in der Datei W2DPluginTableScript.inc.
Es wird ein DIV "output" erzeugt, in dem die Tabelle angezeigt wird.
Sollen nun mehr als eine Tabelle erzeugt werden, so erhalten alle das DIV "output". Der FF zeigt hier Toleranz und zeigt alle Tabellen an, aber nicht der IE.
Um dies zu beheben habe ich in der W2DPluginTableScript.inc folgende Zeilen angepasst:
vorher
Code: Alles auswählen
document.getElementById("output").innerHTML=makeTable();

nachher
Code: Alles auswählen
document.getElementById("output_<cc:param name="caption">").innerHTML=makeTable();


und
vorher
Code: Alles auswählen
<div id="output">" style="overflow: scroll; width: <cc:param name="width">px; height: <cc:param name="height">px; background-color: <cc:param name="backgroundcolor">;">

nachher
Code: Alles auswählen
<div id="output_<cc:param name="caption">" style="overflow: scroll; width: <cc:param name="width">px; height: <cc:param name="height">px; background-color: <cc:param name="backgroundcolor">;">


Die Variable caption setze ich im Plugin -> Dieses Plugin konfigurieren ->
Tabelle -> Tabelleneigenschaften und hier Überschrift.
Da die Überschrift nicht immer freigegeben ist, einmal die Option Darstellung "in einem neuen Fenster" aktivieren, die Überschrift eingeben und wieder die vorherige Option, z.B. "Im Absatz mit Rollbalken" auswählen. Die Überschrift wird wieder gesperrt, der eingegebene Name aber bleibt stehen.
Dies ist mein Lösungsvorschlag, wer einen besseren weiß, immer her damit.
Gruß
Georg
Georg
W2D-Experte
 
Beiträge: 861
Registriert: Fr 22. Apr 2005, 16:42
Wohnort: Niederrhein

Beitragvon michi_lu » Mo 1. Feb 2010, 16:55

hallo georg

ich dachte schon du hättest DEN genialen lösungsvorschlag. bin seit 2 tagen am studieren und am pröbeln, was eine alternative wäre. weil die "normale" tabelle ist auch nicht gerade so zu gebrauchen.
nun, jedenfalls habe ich deine anweisungen befolgt, aber leider nicht das gewünschte ergebnis.

anbei die momentane ansicht: http://www.muehlebach-heidi.ch/angebotundpreise/index.html

anbei die geänderte html-datei:

Code: Alles auswählen
<cc:if cond="popup"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title><cc:param name="caption"></title>
<style>
BODY {
   background-color : <cc:param name="backgroundcolor">;
   margin : 4px;
   padding : 0px;
}
</style>

</head>

<body>
</cc:if>

<script>

   var cells= [
      <cc:param name="tabledef">
   ];
   
   var cols = [
      <cc:param name="coldef">
   ];
   
   var sortCol=0;
   var sortDesc=false;
   
   function makeTable() {
      var html="<table border=0 cellpadding=2 cellspacing=0 style=\"background-color: <cc:param name="backgroundcolor">;\">";
      
      html+="<tr>";
      for (var col=0; col < cols.length; col++) {
         html+=makeTH(col);
      }
      
      for (var row=0; row < cells.length; row++) {
         html+="<tr>";
         for (var col=0; col <cells[row].length; col++) {
            html+=makeTD(row, col);
         }
         html+="</tr>";
      }
      
      return(html);
   }
   
   function makeTD(row,col) {
      var html="<td"+makeTDAttributes(col)+">";
      html+=makeOpenBI(col);      
      html+=cells[row][col];
      html+=makeCloseBI(col);      
      html+="</td>";
      
      return(html);
   }
   
   function makeTDAttributes(col) {
      var html=""
            
      html+=" align="+cols[col][2];
      html+=" width="+cols[col][3];
      html+=" valign=middle";
      html+=" style=\"font-family: <cc:param name="font">; font-size: <cc:param name="fontsize">pt; color: <cc:param name="foregroundcolor";>\"";
      
      return (html);
   }
   
   function makeOpenBI(col) {
      var html=""
      
      if (cols[col][4]) {
         html+="<b>";
      }
      if (cols[col][5]) {
         html+="<i>";
      }
      return (html);
   }

   function makeCloseBI(col) {
      var html=""
      
      if (cols[col][4]) {
         html+="</b>";
      }
      if (cols[col][5]) {
         html+="</i>";
      }
      return (html);
   }


   function makeTH(col) {
      var html="<td"+makeTDAttributes(col)+">";
      
      html+=makeOpenBI(col);   
      html+="<b>"   
      html+=cols[col][0];
      html+="</b>"   
      html+=makeCloseBI(col);      
      
      if (cols[col][6]) {
         html+=" <a href='#' onclick=\"javascript:sortTable("+col+",false);return false\">";
         
         if (col==sortCol && !sortDesc) {
            prefix="a";
         } else {
            prefix="i";
         }      
         
         html+="<img src=s2dplugintab"+prefix+"up.gif border=0>";
         html+="</a>";
         
         html+="<a href='#' onclick=\"javascript:sortTable("+col+",true);return false\">";
   
         if (col==sortCol && sortDesc) {
            prefix="a";
         } else {
            prefix="i";
         }      
   
         html+="<img src=s2dplugintab"+prefix+"down.gif border=0>";
         html+="</a>";
      }
      
      html+="</td>";
      
      return(html);
   }
   
   function sortTable(col, desc) {
      sortCol=col;
      sortDesc=desc;
      
      if (cols[sortCol][6]) {
         cells.sort(compare);
      }
      
      document.getElementById("output_<cc:param name="caption">").innerHTML=makeTable();
   }
   
   function fixNumber (number) {
      if (number=="" || number=="???") {
         return(0);
      }
      number=number.replace(",","");
      number=number.replace(".","");
      number=parseInt(number);
      return(number);
   }
   
   function fixDate (date) {
      day=date.substr(0,2);
      month=date.substr(3,2);
      year=date.substr(6,4);
      
      return (year+month+day);
   }
   
   function compare(a,b) {
      var valA=a[sortCol];
      var valB=b[sortCol];
      var result;
      
      switch (cols[sortCol][1]) {
         case 'n':
            valA=fixNumber(valA);
            valB=fixNumber(valB);
            break;
         case 'd':
            valA=fixDate(valA);
            valB=fixDate(valB);
            break;
      }
      
      if (valA==valB) {
         result=0;
      }
      if (valA>valB) {
         result=1;
      }
      if (valA<valB) {
         result=-1;
      };
      
      if (sortDesc) {
         result*=-1;
      }
      
      return result;
   }
   

</script>

<cc:if cond="inlinediv">
   <div id="output" style="overflow: scroll; width: <cc:param name="width">px; height: <cc:param name="height">px; background-color: <cc:param name="backgroundcolor">;">
   </div>
</cc:if>
<cc:if cond="inline">
   <div id="output">
   </div>
</cc:if>
<cc:if cond="popup">
   <div id="output">
   </div>
</cc:if>

<script>
   sortTable(0,false);
</script>

<cc:if cond="popup">
</body>
</html>
</cc:if>#


ich hoffe du findest evt. da irgendwo den fehler...

ganz lieben dank und gruss
michi
Benutzeravatar
michi_lu
W2D-User
 
Beiträge: 35
Registriert: Di 19. Aug 2008, 19:16
Wohnort: Neudorf

Beitragvon cojo_1008 » Mo 1. Feb 2010, 17:11

setze doch bitte den Code wenigstens mal in die Code-Tags - wer soll da denn durchblicken ?
Ich mach das jetzt eben mal...
Gruß Conny
Benutzeravatar
cojo_1008
Moderator
 
Beiträge: 2298
Registriert: Di 4. Dez 2007, 17:25
Wohnort: Berlin-Kaulsdorf

Re: [LÖSUNGSVORSCHLAG] Fehler in interaktiver Tabelle

Beitragvon Kani » Mi 28. Jul 2010, 10:38

Hallo ich habe das gleiche Problem mit der Tabelle wo kann ich den die Datei W2DPluginTableScript.inc. finden, habe schon alles durchsucht aber nichts gefunden.
Kani
Gastspiel
 
Beiträge: 9
Registriert: Mi 18. Mär 2009, 13:50

Re: [LÖSUNGSVORSCHLAG] Fehler in interaktiver Tabelle

Beitragvon cojo_1008 » Mi 28. Jul 2010, 10:43

im Ordner plugins C:\Program Files\DATA BECKER\shop to date 6.0 pro\plugins (kann bei Dir auch web to date 6.0 heißen)
Gruß Conny
Benutzeravatar
cojo_1008
Moderator
 
Beiträge: 2298
Registriert: Di 4. Dez 2007, 17:25
Wohnort: Berlin-Kaulsdorf

Re: [LÖSUNGSVORSCHLAG] Fehler in interaktiver Tabelle

Beitragvon krenovativ » Mi 28. Jul 2010, 14:29

Georg hat geschrieben:... wer einen besseren weiß, immer her damit.

Hallo,
bei mir kann ich keine Tabellentitel eingeben (Feld ist grau hinterlegt). Deshalb habe ich nach einer Alternativen gesucht und gefunden, ob es besser ist, sei dahin gestellt. :P Es geht halt nix über PHP 8)

1. In der page.ccml des verwendeten Designs die aktuelle Paragraphennummer in einer PHP-Variablen ablegen:
Also die Zeile
<cc:loop type="paragraph" obj="para">
ersetzen mit:
<cc:loop type="paragraph" obj="para">
<?php $para_number = <cc:print value="&para.number">; ?>




2. In der Datei W2DPluginTableScript.inc im plugins-Ordner alle "output" ersetzen mit
"output_<?php echo $para_number; ?>"


UND nicht vergessen: die Dateiendung muss auf .php eingestellt werden.
Viele Grüße,
Rudolf
_______________________________________________________

Das FLEXI-Template (http://w2d-templates.de) kann z.B.:
[list] • Seiten- und Teaser-Spalten mit gleicher Höhe darstellen
• linke und rechte Sidebar mit beliebigen Absätzen füllen
• individuelle Eyecatcher für beliebige Seiten aus dem w2d-Grafikpool einfügen
[/list]
KRENOVATIV-Demo... (http://demo.krenovativ.de)
MANEOLA-Demo... (http://maneola.w2d-templates.de)
Benutzeravatar
krenovativ
W2D-Experte
 
Beiträge: 698
Registriert: Mi 21. Feb 2007, 17:13
Wohnort: 91301 Forchheim

Re: [LÖSUNGSVORSCHLAG] Fehler in interaktiver Tabelle

Beitragvon Kani » Mi 28. Jul 2010, 14:36

sorry ich habe leider noch w2d 5 und habe es da nicht gefunden, habe es doch gefunden aber ich habe es nicht hin bekommen, was muss ich in php ändern also die Endung?

Ich habe es auch mal wie oben beschrieben probiert, die Überschrift wird angezeigt aber der Inhalt der Tabelle nicht hmmmmm

Hier mal der Link zu meiner Seite wie es jetzt aussieht.
http://diegoldenenengel.de/03c1989c7f083f70f.php
Kani
Gastspiel
 
Beiträge: 9
Registriert: Mi 18. Mär 2009, 13:50

Re: [LÖSUNGSVORSCHLAG] Fehler in interaktiver Tabelle

Beitragvon krenovativ » Mi 28. Jul 2010, 17:47

Kani hat geschrieben:sorry ich habe leider noch w2d 5 und habe es da nicht gefunden, habe es doch gefunden aber ich habe es nicht hin bekommen, was muss ich in php ändern also die Endung?

Ich habe es auch mal wie oben beschrieben probiert, die Überschrift wird angezeigt aber der Inhalt der Tabelle nicht hmmmmm

Die Dateiendung ist korrekt, aber die "output"-Stellen in der W2DPluginTableScript.inc hast du nicht verändert.
Zwichen w2d6 und w2d5 ist da kein Unterschied.
Viele Grüße,
Rudolf
_______________________________________________________

Das FLEXI-Template (http://w2d-templates.de) kann z.B.:
[list] • Seiten- und Teaser-Spalten mit gleicher Höhe darstellen
• linke und rechte Sidebar mit beliebigen Absätzen füllen
• individuelle Eyecatcher für beliebige Seiten aus dem w2d-Grafikpool einfügen
[/list]
KRENOVATIV-Demo... (http://demo.krenovativ.de)
MANEOLA-Demo... (http://maneola.w2d-templates.de)
Benutzeravatar
krenovativ
W2D-Experte
 
Beiträge: 698
Registriert: Mi 21. Feb 2007, 17:13
Wohnort: 91301 Forchheim

Re: [LÖSUNGSVORSCHLAG] Fehler in interaktiver Tabelle

Beitragvon Kani » Do 29. Jul 2010, 05:00

super ich habe es hinbekommen, Vielen Dank für die Hilfe

Hier der Link wie es jetzt aussieht http://diegoldenenengel.de/03c1989c7f083f70f.php

Viele Grüße Michael
Kani
Gastspiel
 
Beiträge: 9
Registriert: Mi 18. Mär 2009, 13:50

Re: [LÖSUNGSVORSCHLAG] Fehler in interaktiver Tabelle

Beitragvon krenovativ » Do 29. Jul 2010, 09:53

Kani hat geschrieben:Hier der Link wie es jetzt aussieht http://diegoldenenengel.de/03c1989c7f083f70f.php

Eine Kleinigkeit kannst du noch verbessern:
Wenn im Browser Javaskript deaktiviert ist, sind keine Tabellen zu sehen. Deshalb ist es sinnvoll, einen Hinweis auszugeben, wenn Javascript deaktiviert ist. Dazu kannst du einen html-Absatz vor deinen Tabellenabsätzen setzen und füllen mit:

<noscript>
In Ihrem Nrowser scheint Javaskript deaktiviert zu sein. Um die Tabellen zu sehen, aktivieren Sie bitte Javaskript in Ihrem Browser.
</noscript>

Dieser Text wird dann nur Besuchern angezeigt, bei denen Javascript deaktiviert ist.

Ach ja und noch eines: die von Georg vorgeschlagenen Änderungen reichen nicht aus, um das Sortieren bei mehr als einer Tabelle auf einer Seite ordentlich zu steuern. Neben den "output"-Stellen müssen auch noch alle Javaskript-Funktionen und Variablen mit der Absatznummer versehen werden.

Beispiel:
Code: Alles auswählen
<script>

   var cells<?php echo $para_number; ?>= [
      <cc:param name="tabledef">
   ];
   
   var cols<?php echo $para_number; ?> = [
      <cc:param name="coldef">
   ];
   
   var sortCol=0;
   var sortDesc=false;
   
   function makeTable<?php echo $para_number; ?>() {
      var html="<table border=0 cellpadding=2 cellspacing=0 style=\"background-color: <cc:param name="backgroundcolor">;\">";
      
      html+="<tr>";
      for (var col=0; col < cols<?php echo $para_number; ?>.length; col++) {
         html+=makeTH<?php echo $para_number; ?>(col);
      }
      
      for (var row=0; row < cells<?php echo $para_number; ?>.length; row++) {
         html+="<tr>";
         for (var col=0; col <cells<?php echo $para_number; ?>[row].length; col++) {
            html+=makeTD<?php echo $para_number; ?>(row, col);
         }
         html+="</tr>";
      }
      
      return(html);
   }


Für alle FLEXI- bzw. KRENOVATIV-Eigentümer stelle ich die modifizierten Dateien zum Download bereit unter:
http://www.w2d-templates.de/datadownloa ... /index.php
Viele Grüße,
Rudolf
_______________________________________________________

Das FLEXI-Template (http://w2d-templates.de) kann z.B.:
[list] • Seiten- und Teaser-Spalten mit gleicher Höhe darstellen
• linke und rechte Sidebar mit beliebigen Absätzen füllen
• individuelle Eyecatcher für beliebige Seiten aus dem w2d-Grafikpool einfügen
[/list]
KRENOVATIV-Demo... (http://demo.krenovativ.de)
MANEOLA-Demo... (http://maneola.w2d-templates.de)
Benutzeravatar
krenovativ
W2D-Experte
 
Beiträge: 698
Registriert: Mi 21. Feb 2007, 17:13
Wohnort: 91301 Forchheim

Re: [LÖSUNGSVORSCHLAG] Fehler in interaktiver Tabelle

Beitragvon Kani » Fr 30. Jul 2010, 14:05

Vielen Dank für deine Hilfe
Ich brauche eigendlich die Sortier Funktion nicht, da ich das selber mache, das sind Spielstände unserer Dart Mannschaft, Geil wäre natürlich wenn man die Ergebnisse ein gibt und sich das selbst in der Tabelle ändert.
Kani
Gastspiel
 
Beiträge: 9
Registriert: Mi 18. Mär 2009, 13:50


Zurück zu Interaktive Tabelle

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

Werbebanner
Werbebanner