Ich habe hier eine undankbare Aufgabe. :(
Und zwar muss ich eine Landingpage erstellen, auf der sich ein DIV #counter befindet, dessen Inhalt (264.015) mit einer PHP-Variablen initialisiert wird. Auf dieses DIV wird mit Hilfe eines kleinen JavaScript Counters-zugegriffen, der in unregelmäßigen Abständen nach oben zählt und dabei ständig das innerHTML updatet. Das funktioniert soweit auch und ist erledigt.
Nun hat die Landingpage weitere Unterseiten, die sich per Klick auf einen Button erreichen lassen. Wenn der User durch diese Unterseiten navigiert, soll der Counter nicht wieder mit dem ursprünglichen Initialierungswert beginnen, sondern den aktualisierten Wert übernehmen und von dort aus weiterzählen. Es findet zwangsläufig jedes Mal ein Seitenrefresh statt, und ich darf auch keine PHP-Module (dom-extension, etc.) installieren.
Was ich bisher versucht habe ist, den Wert per GET an die URL weiterzureichen und von dort aus in eine Session zu schreiben, bzw. per if-Abfrage zu prüfen, ob $_SESSION oder $_GET gesetzt sind und anderenfalls den $init_value zu übernehmen. Das klappt aber nicht, bei jedem Refresh startet der Counter immer wieder mit dem Initialisierungswert (264.015).
Das nachfolgende Script ist leicht gekürzt, aber von der Programmlogik nachvollziehbar, und ich denke mal, dass mein Ansatz hier ohnehin noch nicht richtig ist.
Und zwar muss ich eine Landingpage erstellen, auf der sich ein DIV #counter befindet, dessen Inhalt (264.015) mit einer PHP-Variablen initialisiert wird. Auf dieses DIV wird mit Hilfe eines kleinen JavaScript Counters-zugegriffen, der in unregelmäßigen Abständen nach oben zählt und dabei ständig das innerHTML updatet. Das funktioniert soweit auch und ist erledigt.
Nun hat die Landingpage weitere Unterseiten, die sich per Klick auf einen Button erreichen lassen. Wenn der User durch diese Unterseiten navigiert, soll der Counter nicht wieder mit dem ursprünglichen Initialierungswert beginnen, sondern den aktualisierten Wert übernehmen und von dort aus weiterzählen. Es findet zwangsläufig jedes Mal ein Seitenrefresh statt, und ich darf auch keine PHP-Module (dom-extension, etc.) installieren.
Was ich bisher versucht habe ist, den Wert per GET an die URL weiterzureichen und von dort aus in eine Session zu schreiben, bzw. per if-Abfrage zu prüfen, ob $_SESSION oder $_GET gesetzt sind und anderenfalls den $init_value zu übernehmen. Das klappt aber nicht, bei jedem Refresh startet der Counter immer wieder mit dem Initialisierungswert (264.015).
Das nachfolgende Script ist leicht gekürzt, aber von der Programmlogik nachvollziehbar, und ich denke mal, dass mein Ansatz hier ohnehin noch nicht richtig ist.
PHP:
<?php
$init_value = 264.015;
if (isset($_SESSION['counter'])) {
$counter = $_SESSION['counter'];
} elseif (isset($_GET['counter'])) {
$counter = $_GET['counter'];
} else {
$counter = $init_value;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Foobar</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<p id="counter"><?php echo $counter; ?></p>
<p>
<a href="http://irgendeinLink?counter=<?php echo $counter; ?>"></a>
</p>
<script type="text/javascript">
$(document).ready(function() {
// Counter mit random interval
function count() {
var number = document.getElementById('counter').innerHTML;
number = parseFloat(number);
var add = number + 0.001;
add = add.toFixed(3);
document.getElementById('counter').innerHTML = add;
}
function init() {
var timeOut = function() {
count();
var rand = Math.round(Math.random() * (5000 - 2000)) + 2000;
setTimeout(timeOut, rand);
};
timeOut();
}
$(function() {
init();
});
});
</script>
</body>
</html>