Hallo,
JavaScript "sieht" nur was auch in der Adresszeile im Browser steht. Das "location" Objekt hält dann alles bereits.
Eine handelsübliche und einfache Methode um für JS auch die einzelnen Originalparameter sichtbar zu machen ist diese in ein Formular mit versteckten Input-Feldern zu packen, dass einerseits beim Erstaufruf durch PHP gefüllt wird, dann aber auch per JS feldgenau verändert werden kann. Die Feldreihenfolge bestimmt auch die Reihenfolge der Parameter in der URL.
Dem Formular gibst du die method="get", damit die URL-Parameter (aus den versteckten Feldern) nach dem Absenden auch wieder in der URL an der gewünschten Stelle auftauchen.
?var1=1&vars=dideldum&var3=4711
HTML-Code:
<form name="url_helfer" method="get">
<input type="hidden" name="var1" value="1"> <!-- dieser Wert wird geändert -->
<input type="hidden" name="var2" value="dideldum">
<input type="hidden" name="var3" value="4711">
</form>
Auf JS-Ebene sähe der Zugriff dann z.B so aus:
PHP-Code:
function AutoChange() {
// shortcut variablen initialisieren für den direktzugriff
var frm = document.forms['url_helfer'],
felder = frm.elements,
zahl = 0;
// einzelnen feldwert ändern
zahl = parseInt(felder['var1'].value);
zahl++;
felder['var1'].value=zahl;
// formular absenden
frm.send();
}
// Funktion alle 10 sekunden aufrufen
setInterval(AutoChangeSet, 10000);
Die Formularwerte (.value) sind immer vom Datentyp String. Willst du damit rechnen musst du sie vorher mit parseInt() oder parseFloat() umwandeln.
frm.send() senden das Formual ab, läd damit die Seite neu und die nächste URL hätte nun den Aufbau ?var1=2&vars=dideldum&var3=4711
EDIT: hab den JS-Code in eine Funktion gepackt mit setInterval() als 10-sekunden Timeout.
CirTap
Lesezeichen