Felix Riesterer: ? maskieren in url für javascript

Beitrag lesen

Lieber Aki,

ich muss in einem Javascript eine komplexere URL übergeben

OK.

$("#refresh").load('test.php?' + 1*new Date());

Das verstehe ich nicht. Das sollte eine URL in dieser Art ergeben: https://example.org/test.php?1507303299065

Mein Problem ist, das ja PHP das erste Fragezeichen für seine ULR braucht aber eben auch das Javacript script.

Nein, Dein Problem ist, dass Du nicht verstanden hast, wie man Parameter übergibt!

test.php?a=1&b=2

Aha! Und wo siehst Du bei Deiner von JavaScript erzeugten URL einen Schlüsselnamen (wie a und b in Deinem Beispiel)? Eben! Du solltest Deinem Zeitstempel noch einen Namen geben:

$("#refresh").load('test.php?time=' + 1*new Date());

Jetzt kann PHP mit dem Schlüssel time Deinen in JavaScript erzeugten Sekundenwert "verstehen", allerdings musst Du PHP erst erklären, dass JavaScript auch Millisekunden dranschreibt - also für PHP die letzten drei Stellen einfach streichen.

Wie kann ich das erste ? das nach dem PHP maskieren, so das die übergabe funktioniert?

Die Übergabe scheitert nicht am "ersten ?", sondern am fehlenden Schlüssel. Fragezeichen und alles andere maskiert man in JavaScript mit encodeURI.

Liebe Grüße,

Felix Riesterer.