Variablen in Url schreiben
Lennart
- javascript
0 LX0 Lennart
0 Timo "God's Boss" Reitz0 Lennart
Hallo,
ich verzweifel hier grad an meinem einem Problem...
Also ich habe da mehrere Variablen: neu2 und neu3 und die Variablen werden durch Klickerei auf Buttons erhöht oder erniedrigt.
Das passiert mit neu2++ oder neu2-- bzw. neu3++ oder neu3--.
Die Variablen sind beide zubeginn 0.
Dann gibt es noch die unwichtige Variable bla die die zuladende Seite erhält und ich nur zur Vervollständigung erwähne.
Am ende soll dann, durch das klicken auf einen Link, ein neues Fenster geöffnet werden und die Variablen sollen in die URL eingetragen werden.
Das mache ich mit:
<script>document.write('<a href=' + bla + 'feilschen=' + neu2 +'?verhalten=' + neu3 +'>Speichern');</script>
Die nächste Seite wird zwar geladen und die Variablen und der Text werden auch reingeschrieben doch Die Variablen neu2 und neu3 werden immer als 0 reingeschriebn. (zb. feilschen=0) Also ihr Ausgangspunkt.
Was mache ich falsch? Liegt es vielleicht daran dass die Variablen im Header deklariert sind und sie dort auch erhöht werden?
Hoffe ihr könnt mir helfen.
Viele Grüße Lennart
Zwischen den Seitenwechseln wird die Javascript-Umgebung neu initialisiert, d.h. Du musst die Variablen auch wieder auslesen - oder besser noch auf den Seitenwechsel verzichten.
Gruß, LX
Hi,
das verstehe ich nicht ganz ich schreibe die Variablen doch in die URL...
Wie kann ich denn Variablen auslesen?
Auf den Seitenwechsel kann ich leidernicht verzichten da ich dann mit php die Variablen aus der URL auslese und in die Datenbank schreibe.
Die Variablen sind beide zubeginn 0.
Am ende soll dann, durch das klicken auf einen Link, ein neues Fenster geöffnet werden und die Variablen sollen in die URL eingetragen werden.
Das mache ich mit:<script>document.write('<a href=' + bla + 'feilschen=' + neu2 +'?verhalten=' + neu3 +'>Speichern');</script>
Du führst das Skript beim Laden der Seite aus, wenn 'Trara' der Inhalt von bla ist, wird <a href=Trarafeilschen=0?verhalten=0>Speichern
daraus. Wenn sich der Inhalt von neu2 und neu3 danach verändert, hat das keine Auswirkungen mehr auf den Link.
Übrigens fehlt dem script-Element das type-Attribut.
Hi,
nein der Inhalt von bla ist chare2.php?, damit sieht es so aus :
chare2.php?feilschen=0
Gibt es denn eine Möglichkeit das die Variablen in die Url, mit ihrem Wert, geschrieben werden?
Oder gibt es eine andere Möglichkeit die Variablen an php weiterzugeben.?
Es gibt genau 3 Möglichkeiten, JavaScript-Inhalte vom Client an das PHP auf dem Server weiterzugeben:
GET
POST
Cookies
Diese Möglichkeiten können jeweils mit drei Methoden genutzt werden:
Seitenwechsel
Synchroner XMLHttpRequest
Asynchroner XMLHttpRequest
Du hast jeweils den ersten Weg gewählt, aber nicht berücksichtigt, dass JavaScript beim Seitenwechsel nicht persistent ist, d.h. sein Zustand nicht erhalten bleibt.
Wenn Du die Variablen weiter inkrementieren willst, musst Du sie nach dem Seitenwechsel erst aus dem GET-String (location.search) wieder auslesen.
Gruß, LX
nein der Inhalt von bla ist chare2.php?, damit sieht es so aus :
chare2.php?feilschen=0
Das war ja auch nur ein Beispiel von mir. Wenn der Inhalt von bla "chare2.php?" (und neu2 und neu3 wie gehabt), ist das Ergebnis übrigens <a href=chare2.php?feilschen=0?verhalten=0>Speichern
, ich denke nicht, dass das so gewollt ist.
Gibt es denn eine Möglichkeit das die Variablen in die Url, mit ihrem Wert, geschrieben werden?
Natürlich. Du kannst bei jeder Änderung der Werte neu2 und neu3 die URL im Link ändern oder du nutzt im Link einen EventHandler, der sich die Werte von neu2 und neu3 schnappt und das Ziel entsprechend abändert.
Oder gibt es eine andere Möglichkeit die Variablen an php weiterzugeben.?
Natürlich. So wie es aktuell aussieht, würde ich dir übrigens eher einen POST- statt eines GET-Requests empfehlen, denn das "Speichern" im Link deutet daraufhin, dass Änderungen in den Applikationsdaten vorgenommen werden sollen. Neben dem konventionellen POST-Request kannst du auch (wurde ja schon erwähnt AJAX benutzen).