Hi,
vorab - ich weiss nicht ob das in dieses Forum gehört, hab bei Nachforschungen im Web gesehen, dass es mit Javaservlets zu tun haben soll und schreib's deshalb hier rein.
Der Aufbau meiner Seiten:
Frame1: Navigation mittels Javascriptbaum
Frame2: Tabellen
Also was ich eigentlich wollte:
ich setzte beim Aufruf des Frame2 Cookies über den Zustand meiner Tabellen/Felder, etc, ob sie sichtbar oder unsichtbar sind.
Hat bei zwei ebenen bisher auch alles schön und gut funktioniert.
Aber:
Sobald ich jetzt praktisch neue Felder anlegen lasse oder Daten hole um die Tabellen zu füllen, den Baum zu erzeugen verliert er die Session!
Für nähere Erläuterung:
Bei Klick auf meinen Javascriptbaum (besteht am Anfang aus zwei Ebenen) geht er in die Datenbank und holt (falls vorhanden) die Kinder und hängt sie an den Baum dran.
Gleichzeitig schickt er die Id des angeklickten Astest/Kindes an Frame2 und setzt die dazugehörige Tabelle auf hidden oder block (je nach dem was im Cookie steht).
Teste auf Appache und Tomcat.
Bei Appache funktionierts, bei Tomcat nicht
=> deshalb meine Vermutung wegen der JSESSIONID, die ja vom Server selbstständig erzeugt wird.
beim setzen dieser Zeile
$tmp4=0;
gibt er den Geist auf, lasse ich diese weg bleibt die JSESSIONID zwar vorhanden, aber er setzt mir meine Cookies nicht.
Das seltsame ist halt, eine andere funktion für die Haupttabelle macht genau das gleiche mit fast identischem Code, gerade das mit dem Setzen der $tmps, und dort funkts!!!
Sitze seit drei Tagen an dem Problem und komme nicht weiter.
Help!!!
vorab - ich weiss nicht ob das in dieses Forum gehört, hab bei Nachforschungen im Web gesehen, dass es mit Javaservlets zu tun haben soll und schreib's deshalb hier rein.
Der Aufbau meiner Seiten:
Frame1: Navigation mittels Javascriptbaum
Frame2: Tabellen
Also was ich eigentlich wollte:
ich setzte beim Aufruf des Frame2 Cookies über den Zustand meiner Tabellen/Felder, etc, ob sie sichtbar oder unsichtbar sind.
Hat bei zwei ebenen bisher auch alles schön und gut funktioniert.
Aber:
Sobald ich jetzt praktisch neue Felder anlegen lasse oder Daten hole um die Tabellen zu füllen, den Baum zu erzeugen verliert er die Session!
Für nähere Erläuterung:
Bei Klick auf meinen Javascriptbaum (besteht am Anfang aus zwei Ebenen) geht er in die Datenbank und holt (falls vorhanden) die Kinder und hängt sie an den Baum dran.
Gleichzeitig schickt er die Id des angeklickten Astest/Kindes an Frame2 und setzt die dazugehörige Tabelle auf hidden oder block (je nach dem was im Cookie steht).
Teste auf Appache und Tomcat.
Bei Appache funktionierts, bei Tomcat nicht
=> deshalb meine Vermutung wegen der JSESSIONID, die ja vom Server selbstständig erzeugt wird.
PHP-Code:
function subtabelle1($subid)
{
global $index, $laenge3, $laenge5, $suchstring, $meinArray;
$tmp3=0;
$tmp4=0;
/* Falls eine Id uebergebene wurd schaut er nach dem Wert in dem Cookie fuer diese Id und aendert ihn um */
if($suchstring==$subid)
{
if($_COOKIE[$subid]=="none")
{
$_COOKIE[$subid]="block";
setCookie($subid, 'block');
}
elseif($_COOKIE[$subid]=="block")
{
$_COOKIE[$subid]="none";
setCookie($subid, 'none');
}
}
/* holt den Wert fuer das display der Subtabelle aus dem Cookie, falls eines gesetzt ist */
if(isset($_COOKIE[$subid]))
echo "<table id=\"".$subid."\" border='1' style='display:".$_COOKIE[$subid]."' cellpadding='1' cellspacing='1' style='border-collapse:collapse;'width=100%>";
/* andernfalls setzt er das display der Subtabelle auf none=nicht sichtbar*/
else
echo "<table id=\"".$subid."\" border='1' style='display:none' cellpadding='1' cellspacing='1' style='border-collapse:collapse;'width=100%>";
/* Die Subtalle mit werten fuellen*/
for($i=0; $i<count($laenge3); $i++)
{
/* dazu die werte aus dem Array holen, das die Werte mit nur einem Punkt beinhaltet*/
$search=$laenge3[$i];
$pos=strpos($search, ".");
$search2=substr($search, 0, $pos);
/* falls die erste zahl des wertes mit der Id der Tabelle uebereinstimmt*/
if ($search2==$subid)
{
/* wird der wert aus dem gesamtarray geholt und ausgegeben */
$keystring=$laenge3[$i];
$key=array_search($keystring, $index);
echo "<tr>";
for($j=0; $j<count($meinArray[$i]); $j++)
{
echo "<td class='list'> ".$meinArray[$key][$j]."</td>";
}
echo "</tr>";
/* schaut nach ob ein Kind des Kindes existiert*/
for($z=0; $z<count($laenge5); $z++)
{
$suche=$laenge5[$z];
$stringarray=explode(".", $suche);
$stringsuche=$stringarray[0].".".$stringarray[1];
if($stringsuche==$meinArray[$key][0])
{
if($tmp3<>$subid)
{
$tmp3=$subid;
$tmp4=$tmp4+1;
if($tmp4==1)
{
$name=$meinArray[$key][0];
$name2=str_replace(".", "_", $name);
if(!isset($_COOKIE[$name2]))
{
cookies($name, 'none');
}
echo "<tr>";
echo "<td class='list' colspan='25' cellpadding='0' cellspacing='0'>";
subtabelle2($meinArray[$key][0]);
echo "</td>";
echo "</tr>";
}
}
}
}
$tmp3=0;
}
$tmp4=0;
}
}
echo "</table>";
}
$tmp4=0;
gibt er den Geist auf, lasse ich diese weg bleibt die JSESSIONID zwar vorhanden, aber er setzt mir meine Cookies nicht.
Das seltsame ist halt, eine andere funktion für die Haupttabelle macht genau das gleiche mit fast identischem Code, gerade das mit dem Setzen der $tmps, und dort funkts!!!
Sitze seit drei Tagen an dem Problem und komme nicht weiter.
Help!!!
Kommentar