Willkommen in der Webstatt Zum Webstatt Blog und Stories
Al3x0r Al3x0r am 29.07.06 19:18

Hallo,

Da ich absolut keine Peilung von JS habe wollte ich frage , ob mir jmd folgende Funktion ein bisschen anpassen kann.

<script type="text/javascript">
function Klappen(Id) {
var KlappText = document.getElementById('Lay'+Id);
var KlappBild = document.getElementById('Pic'+Id);
var jetec_Minus="images/template/minus.gif", jetec_Plus="images/template/plus.gif";
if (KlappText.style.display == 'none') {
KlappText.style.display = 'block';
KlappBild.src = jetec_Minus;
} else {
KlappText.style.display = 'none';
KlappBild.src = jetec_Plus;
}

}
</script>


Es geht darum, dass sobald die Funktion Klappen aufgerufen wird ein Cookie mit dem Namen des Layers (Lay+Id) und dem jeweiligen display modus also none oder block gesetzt wird:
Also sowas:

document.cookie = Lay+Id = none oder block

Dann sollte bei einem Seitenaufruf geprüft werden, ob cookies vorliegen und dann je nachdem Display none oder display block setzen...

Die Funktion ist von http://www.je0.de/.

Wäre nett wenn mir das jemand machen könnte.

Vielen dank schonmal im Vorraus, Alex.

Achja: Gibt es eine Möglichkeit im Hintergrund (ohne neuen Seitenaufruf) den ganzen kram mit setcookie zu machen ? Ich wüsste nämlich nciht wie und deswegen wollte ich das mit JS realisieren. Gibt es allerdings eine solche Möglichkeit würde ich diese bevorzugen.

netcup.de Warum gibt es hier Werbung?
milahu milahu am 29.07.06 22:40

Ach, das bietet doch überhaupt kein Erfolgserlebnis, das von einem andern machen zu lassen.. :p

Cookie: http://de.selfhtml.org/javascript/objekte/document.htm#cookie
JSON: http://www.json.org/js.html

Im Cookie legst du ein serialisiertes JSON Objekt ab, denn mit einem String wirst nicht weit
kommen.. ;) Beim Auslesen dann einfach wieder in ein Array umwandeln und die entsprechenden
Elemente einklappen.. voila.

Al3x0r Al3x0r am 30.07.06 14:01

Oh Gott oh gott naja was ist ein serialisiertes JSON Objekt ? Was meinst du damit ?
Naja hoffentlich kriege ich das alles heute hin, wollte mich damit nicht so lange aufhalten.

mfg Alex

Kann ich eine PHP Funktion auch im Hintergrund ausführen und sie durch JS aufrufen

milahu milahu am 30.07.06 15:05

Mit serialisieren meine ich in einen String umwandeln, was mit der toJSONString Methode geht.

Du kannst über HTTP ein PHP Skript auf deinem Server aufrufen, ja. Mit GET Parametern lässt sich
das ganze auch ganz gut steuern.. ;)

Dazu nimmst du am besten eine Ajax Klasse, die die Implementierungen für HTTP Anfragen der
verschiedenen Browser schön abstrahiert.

Als Austauschformat empfiehlt sich XML (--> Ajax), wobei JSON auch nicht schlecht ist.. ;)

Al3x0r Al3x0r am 30.07.06 15:49

Quote
Original von milahu
Mit serialisieren meine ich in einen String umwandeln, was mit der toJSONString Methode geht.

Du kannst über HTTP ein PHP Skript auf deinem Server aufrufen, ja. Mit GET Parametern lässt sich
das ganze auch ganz gut steuern.. ;)

Dazu nimmst du am besten eine Ajax Klasse, die die Implementierungen für HTTP Anfragen der
verschiedenen Browser schön abstrahiert.

Als Austauschformat empfiehlt sich XML (--> Ajax), wobei JSON auch nicht schlecht ist.. ;)



Joa klar. Nochmehr Fachbegriffe aus Lager ? :D

Ich wollte eig. nur einen Cookie via Javascript mit lay + Id = none oder block setzen und nicht 2 oder 3 neue Programmiersprachen lernen... Gibs das alles auch in einfach. Der Code kann ja meinetwegen grottenhässlich und unprofessionell sein... Wenns denn funktioniert...

mfg Alex

edit:// Javascript ist zum kotzen !!!!!!!!


edit2:// Thema hat sich erledigt, ich hasse JS ich machs mit PHP. :D

milahu milahu am 30.07.06 16:20

Ja.. ich seh schon, so wird das nix.. ^^

*vorwerf*
var versteckt = Array();

function klappen(id){
var treffer = 0;
for(i in versteckt){
if(versteckt[i] == id){
delete versteckt[i];
treffer = 1;
// hier Element#id ausklappen
break;
}
}
if(!treffer){
versteckt.push(id);
// hier Element#id einklappen
}
}

function speichern(){
document.cookie = versteckt.join(',');
}

function lesen(){
var ids = document.cookie.split(',');
for(i in ids){
klappen(ids[i]);
}
}


Doch etwas einfacher gehalten jetz.. :P

Al3x0r Al3x0r am 30.07.06 17:42

Wow Danke dir... :D
Es waäre bei mir auch nichts geworden

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt