HTML Seiten-Zustand bei Aktualisierung beibehalten

okay, wie mache ich aus dem string wieder ein array? wo kann ich mich dazu belesen?
In Selfhtml finde ich diese kombination nicht.
DANKE
 
Google mal nach "javascript array to string". ;)
Code:
var arr = [1, 2, 3, 4];
var str = arr.join( ',' )
 
Genau. Wie gesagt, jQuery wäre eine sehr gute Option, das alles zu vereinfachen.
Code:
function GetCookieVars() // liefert alle Cookies als Objekt mit Werten
{
	var c = document.cookie;
	var cc = c.split( ',' );
	var r = {};
	for( var i in cc )
	{
		var ccs = cc[i].split( '=' );
		r[ccs[0]] = ccs[1];
	}
	return r;
}

function SetCookieVars( Obj ) // setzt einelne Cookies, übernimmt die Alten mit
{
	var x = GetCookieVars();
	for( var i in Obj )
		x[i] = Obj[i];
	var c = [];
	for( var i in x )
		c.push( i + '=' + x[i] );
	var cookie = c.join( ',' );
	document.cookie = cookie;
}

var x = GetCookieVars();

if( x.aufklappen == 1 ) klappe_auf_xy();
if( x.aufklappen2 == 1 ) klappe_auf_ab();

SetCookieVars( {aufklappen: 0, aufklappen2: 1} );
Ungetestet.
 
Tausend DANK.... Yuuri
ich habe jetzt einen für mich plausiblen Algorythmus mit dem ich weiter arbeiten kann.
Vielen Dank für eure Hilfe :-)

Zugegeben.... er ist noch absolut nicht fehlertollerant, was alten Kram im cooki betrifft.
<html>
<head>
<script type="text/javascript">
<!--
var cookiewerte=0;
var reiter=new Array("auf","auf");
for(var i=0; i<2; i++)
{
reiter="auf";
}

if(document.cookie)
{
ReadCookie();
}
else
{
cookiewerte=2;
for(var i=0; i<cookiewerte; i++)
{
document.cookie="Reiter" + i +"=auf" + ";";
}
alert("set cookie " + document.cookie);
}

function ReadCookie()
{ var allcookies = document.cookie;
cookiearray = allcookies.split(';');
for(var i=0; i<cookiearray.length; i++)
{
name = cookiearray.split('=')[0];
value = cookiearray.split('=')[1];
reiter=value;
}
cookiewerte=cookiearray.length;
alert("read cookie " + document.cookie);
}
function WriteCookie()
{
for(var i=0; i<cookiewerte; i++)
{
document.cookie="Reiter" + i + "=" + reiter + ";";
}
alert("write cookie " + document.cookie);
}

function zu(nr)
{
reiter[nr-1]="zu";
WriteCookie();
}
function auf(nr)
{
reiter[nr-1]="auf";
WriteCookie();
}

function start()
{
if ( reiter[0] == "zu" )
{
document.getElementById('Reiter0_1').style.display='block';
document.getElementById('Reiter0_2').style.display='none';
document.getElementById('z0_1').style.display='none';
document.getElementById('z0_2').style.display='none';
}
else
{
document.getElementById('Reiter0_1').style.display='none';
document.getElementById('Reiter0_2').style.display='block';
document.getElementById('z0_1').style.display='block';
document.getElementById('z0_2').style.display='block';
}
if ( reiter[1] == "zu" )
{
document.getElementById('Reiter1_1').style.display='block';
document.getElementById('Reiter1_2').style.display='none';
document.getElementById('z1_1').style.display='none';
document.getElementById('z1_2').style.display='none';
}
else
{
document.getElementById('Reiter1_1').style.display='none';
document.getElementById('Reiter1_2').style.display='block';
document.getElementById('z1_1').style.display='block';
document.getElementById('z1_2').style.display='block';
}
}
//-->
</script>
</head>
<body onload='start()'>
<table>
<tr id="Reiter0_1" onclick="document.getElementById('Reiter0_2').style.display='block';
document.getElementById('z0_1').style.display='block';
document.getElementById('z0_2').style.display='block';
auf(1);
this.style.display='none'" style="display:none;">
<td>+ Reiter0</td>
</tr>
<tr id="Reiter0_2" onclick="document.getElementById('Reiter0_1').style.display='block';
document.getElementById('z0_1').style.display='none';
document.getElementById('z0_2').style.display='none';
zu(1);
this.style.display='none'">
<td>- Reiter0</td>
</tr>
<tr id="z0_1">
<td>test1</td>
</tr>
<tr id="z0_2">
<td>test2</td>
</tr>
<tr id="Reiter1_1" onclick="document.getElementById('Reiter1_2').style.display='block';
document.getElementById('z1_1').style.display='block';
document.getElementById('z1_2').style.display='block';
auf(2);
this.style.display='none'" style="display:none;">
<td>+ Reiter1</td>
</tr>
<tr id="Reiter1_2" onclick="document.getElementById('Reiter1_1').style.display='block';
document.getElementById('z1_1').style.display='none';
document.getElementById('z1_2').style.display='none';
zu(2);
this.style.display='none'">
<td>- Reiter1</td>
</tr>
<tr id="z1_1">
<td>test1</td>
</tr>
<tr id="z1_2">
<td>test2</td>
</tr>
<META HTTP-EQUIV=Refresh CONTENT='5; URL=design.htm'>
</body></html>
 
Versuch es mal mit delete obj.elem. Funktioniert zumindest im Firefox ein Element eines Objekts zu löschen.
 
Hallo nochmal,
im IE funktioniert alles bestens. Aber ich habe große Probleme mit Firefox.

Sobald im Javaskript Zellen mit document.getElementById(ObjektID).style.display='block' bzw. document.getElementById(ObjektID).style.display='none' ein und ausgeblendet werden, verlieren diese Ihren Bezug bzw. Ausrichtung in der Tabelle.

Code Beispiel:
<html>
<head>
<script type="text/javascript">
<!--
var gruppenwerte=0;
var gruppe=new Array(20);
for(var i=0; i<20; i++) { gruppe="auf"; }
if(document.cookie)
{ ReadCookie(); }

function ReadCookie()
{ var allcookies = document.cookie;
cookiearray = allcookies.split(';');
gruppenwerte=0;
var Suche = /Gruppe/;
for(var i=0; i<cookiearray.length; i++)
{ name = cookiearray.split('=')[0];
value = cookiearray.split('=')[1];
if((value=="auf"||value=="zu")&&(Suche.test(name)))
{ gruppe[gruppenwerte]=value;
gruppenwerte++;
}
}
}
function WriteCookie()
{ for(var i=0; i<gruppenwerte; i++)
{ document.cookie="Gruppe" + i + "=" + gruppe + ";";
}
}

function zu(nr)
{ gruppe[nr]="zu";
//für den Fall, dass die Gruppe noch nicht im Cookie enthalten ist
if(gruppenwerte<nr+1) gruppenwerte=nr+1;
WriteCookie();
}
function auf(nr)
{ gruppe[nr]="auf";
WriteCookie();
}

function start()
{ for(var gruppe_nr=0; gruppe_nr<gruppenwerte; gruppe_nr++)
{ if ( gruppe[gruppe_nr] == "zu" )
{ document.getElementById('Gruppe' + gruppe_nr + ' 1').style.display='block';
document.getElementById('Gruppe' + gruppe_nr + ' 2').style.display='none';
for(var i=0; i<20; i++)
{ if(document.getElementById('z' + gruppe_nr + ' ' + i))
{ document.getElementById('z' + gruppe_nr + ' ' + i).style.display='none';
}
}
}
else
{ document.getElementById('Gruppe' + gruppe_nr + ' 1').style.display='none';
document.getElementById('Gruppe' + gruppe_nr + ' 2').style.display='block';
for(var i=0; i<20; i++)
{ if(document.getElementById('z' + gruppe_nr + ' ' + i))
{ document.getElementById('z' + gruppe_nr + ' ' + i).style.display='block';
}
}
}
}
}
//-->
</script>
</head>
<body onload='start()'>
<table border="1">
<tr>
<th>Spalte..........1</th>
<th>Spalte....2</th>
</tr>
<tr id="Gruppe0 1" onclick="auf(0); start(); this.style.display='none'" style="display:none;">
<td colspan=2 align="center">+ Gruppe0</td>
</tr>
<tr id="Gruppe0 2" onclick="zu(0); start(); this.style.display='none'">
<td colspan=2 align="center">- Gruppe0</td>
</tr>
<tr id="z0 0"> <td>z1 f1</td> <td>z1 f2</td>
</tr>
<tr id="z0 1"> <td>z2 f1</td> <td>z2 f2</td>
</tr>
<tr id="Gruppe1 1" onclick="auf(1); start(); this.style.display='none'" style="display:none;">
<td colspan=2 align="center">+ Gruppe1</td>
</tr>
<tr id="Gruppe1 2" onclick="zu(1); start(); this.style.display='none'">
<td colspan=2 align="center">- Gruppe1</td>
</tr>
<tr id="z1 0"> <td>z1 f1</td> <td>z1 f2</td>
</tr>
<tr id="z1 1"> <td>z2 f1</td> <td>z2 f2</td>
</tr>
<tr id="Gruppe2 1" onclick="auf(2); start(); this.style.display='none'" style="display:none;">
<td colspan=2 align="center">+ Gruppe2</td>
</tr>
<tr id="Gruppe2 2" onclick="zu(2); start(); this.style.display='none'">
<td colspan=2 align="center">- Gruppe2</td>
</tr>
<tr id="z2 0"> <td>z1 f1</td> <td>z1 f2</td>
</tr>
<tr id="z2 1"> <td>z2 f1</td> <td>z2 f2</td>
</tr>
<META HTTP-EQUIV=Refresh CONTENT='5; URL=dieseSeite.htm'>
</body></html>


Ich hoffe mir kann jemand helfen.
Ergänzung ()

Mir hat schon jemand im SELFHTML-Forum geholfen....
Hallo Heimwerker,

»» { document.getElementById('Gruppe' + gruppe_nr + ' 1').style.display='block';

hiermit machst du das tr zu einem Blockelement. Wenn du Tabellenelemente anzeigen willst, setze display lieber auf seinen Defaultwert: ...display="";

Gruß, Jürgen

Also alle "block"s raus und es funktioniert. :-)
 
Zurück
Oben