Der Martin: PHP/jQuery: übergebene Variablen werden scheinbar ignoriert

Beitrag lesen

Hallo Enrico,

Du glaubst gar nicht, wie sehr es mich freut, dass sich doch noch jemand meines Problems annimmt

;-)

Was tust du eigentlich mit der empfangenen Antwort? Wie verarbeitest du sie weiter?
Aha, vielleicht liegt auch hier mein Verständnisproblem, denn außer dem alert gibt es derzeit noch gar nichts.

Prima. Dann kann auch nichts passieren.

jQuery lädt eine PHP, führt den Code aus und liefert etwas zurück ...

Richtig. jQuery (bzw. der AJAX-Mechanismus von Javascript) ruft eine HTTP-Ressource auf, dabei wird auf dem Server PHP-Code ausgeführt, der etwas ausgibt. Diese Ausgabe bekommst du dann im response-String.

... führt aber keinen Reload der Seite während der Aktion aus, richtig?

Richtig, das ist ja auch genau der Sinn der Sache. Sonst könnte man ja gleich die neue URL einfach an location.href zuweisen und wäre fertig.

Dies hieße in meinem Fall, dass es nie zu einer Aktualisierung der Menüs kommen kann, wenn ich im success-Block keine Anweisungen habe, die mit der Rückmeldung etwas tun sollen, richtig?

Genau. Von nichts kommt nichts.

Wiederum würde das bedeuten, dass ich meine Funktion Navigation (AuswahlHauptmenue, AuswahlUntermenue); im success-Block haben müsste, um eine Aktualisierung der Menüs zu erwirken.

Wie auch immer diese Funktion dann aussieht. Auf jeden Fall muss sie die vom Server empfangene Antwort auswerten und danach bestimmte Menüelemente sichtbar bzw. nicht sichtbar machen.

Aber habe ich dann nicht eine Art von endloser Rekursion?

Nein, wieso? - Natürlich darf dein PHP-Script auf die beiden unterschiedlichen Anfragen (komplettes HTML-Dokument laden vs. Menüaktualisierung per AJAX) nicht identisch reagieren. Vor allem ergibt es wenig Sinn, auf die Anfrage im zweiten Fall mit ausführlichem HTML zu antworten.

So gesehen frage ich mich mittlerweile, warum du überhaupt diesen ganzen Aufwand treibst. Es wäre doch viel einfacher, als Reaktion auf den Menü-Klick einfach nur die Anzeigeeigenschaften der betroffenen Listenelemente zwischen sichtbar und unsichtbar umzuschalten - ohne Umweg über ein serverseitiges Script. Damit wären wir beim Einwirken von Javascript auf CSS, etwa durch Setzen oder Wegnehmen einer Klasse für bestimmte Elemente.

So long,
 Martin

--
Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(