ID für Tabmenü manuell zuweisen

xtramen01

Erfahrenes Mitglied
Hallo,

ich habe ein Javascript Tabmenü.

Nun habe ich eine Frage dazu:

Die Tabs werden folgendermassen erzeugt:
Code:
  <table cellspacing="1" cellpadding="0" border="0" width="100%">
 <tr>
    <td id="tab1" class="offtab" onclick="dhtml.nTab(this.id)">Allgemein</td>
    <td id="tab2" class="offtab" onclick="dhtml.nTab(this.id)">Preise</td>
    <td id="tab3" class="offtab" onclick="dhtml.nTab(this.id)">Beschreibung</td>    
    <td id="tab4" class="offtab" onclick="dhtml.nTab(this.id)">Sonstiges</td>
    <td width="90%" class="offtab">&nbsp;</td>
  </tr>
  </table>

Hier ist der Javascript Code dazu:
Code:
function DHTML(){ 
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=this.agent.indexOf("Opera 5")<-1
	this.ie5=(this.ver.indexOf("MSIE 5")<-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")<-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")<-1
	this.ns6=(this.dom && parseInt(this.ver) <= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera5);

	this.activeTab = '';
	this.onTabStyle = 'ontab';
	this.offTabStyle = 'offtab';

	this.setElemStyle = function(elem,style) {
		document.getElementById(elem).className = style;
	}
	this.showElem = function(id) {
		if (elem = document.getElementById(id)) {
			elem.style.visibility = 'visible';
			elem.style.display = 'block';
		}
	}
	this.hideElem = function(id) {
		if (elem = document.getElementById(id)) {
			elem.style.visibility = 'hidden';
			elem.style.display = 'none';
		}
	}
	this.nTab = function(name) {
		if (this.activeTab) {
			this.setElemStyle( this.activeTab, this.offTabStyle );
			page = this.activeTab.replace( 'tab', 'box' );
			this.hideElem(page);
		}
		this.setElemStyle( name, this.onTabStyle );
		this.activeTab = name;
		page = this.activeTab.replace( 'tab', 'box' );
		this.showElem(page);
	}
	return this;
}

Ich möchte nun dass wenn ich die Seite betrete das erste Menüelement aktiv ist.
Hab da schon recherchiert und ich denke das könnte man per onload() machen.

Mein Problem ist aber das ich die ids von den Tabmenüs nicht manuell zuweisen kann. z.b. so:

Code:
onload="dhtml.nTab(1)

Das geht leider nicht und ich weis nich warum.

Kann mir da jemand helfen?

Gruß
 
Moin,

die Funktion erwartet als Parameter die ID des betreffenden Tabs, so sollte es gehen:
Code:
onload="dhtml.nTab('tab1')"
 
Hi,

vielen Dank!
Es klappt nun.

Wo wir doch grad dabei sind... :)

...durch die Tabs ist ja nun der Seiteninhalt getrennt.
Sprich die Formularfelder verteilt.

Und es erfordert an einer Stelle das die Seite neu geladen wird.

Gibt es per Javascript oder PHP auch eine Möglichkeit die Eingaben der Formularfelder zwischenzuspeichern, sodass diese nach einem Seitenreload nicht wieder weg sind?

Gruss
 
Das Einfachste wäre wohl, wenn du statt einem simplen Reload die Formulardaten sendest....dann kannst du sie ja mit PHP auslesen.

Falls das nicht geht, könntest du bspw. beim onunload die Formulardaten per JS auslesen und in einem Cookie speichern.
Nach dem Reload liest du die Daten dann aus dem Cookie aus und füllst die Felder wieder.
 
Zurück