Hallo,
Ich habe ein PHP-JavaScript-AJAX Script welches beim klicken auf einen Link ein paar aktuelle Werte in eine PHP-Session setzen soll.
Das ist der HTML-Link:
welches beim anklicken des Links dieses Script aufruft:
Und das hier ist schlussendlich das PHP-Script:
Zusätzlich habe ich das selbe Script zur Kontrolle als Klickevent auf einen Button ohne weiter Funktion gesetzt. Wenn dieser Button gedrückt wird wird sofort "SESSION HAS BEEN..." angezeigt.
Wenn ich allerdings auf den Link klicke wird nur ein leeres Fenster angezeigt. Liegt das daran dass in der Zwischenzeit die gelinkte Seite angezeigt wird und es deshalb Komplikationen gibt? Die neuen Werte sind trotzdem gesetzt in Firefox, in Safari allerdings nicht. Hier wird noch nicht mal ein leeres Fenster angezeigt beim klicken auf den Link (beim Button klapps auch in Safari).
Danke für jede Hilfe!
Patrick
Ich habe ein PHP-JavaScript-AJAX Script welches beim klicken auf einen Link ein paar aktuelle Werte in eine PHP-Session setzen soll.
Das ist der HTML-Link:
Code:
<a href="?order=category" id="a_category" onclick="updatePHPSession(1);">category</a>
Code:
function updatePHPSession( order ) {
var xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
} catch(e) {
// Internet Explorer
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4) {
// empty
alert(xmlHttp.responseText);
}
}
var n = 0;
var d = 0;
if (document.getElementById("name").checked) n = 1;
if (document.getElementById("date").checked) d = 1;
var url = "updatePHPSession.php";
url = url + "?n=" + n;
url = url + "&d=" + d;
if (order != 0) url = url + "&o=" + order;
url = url + "&sid=" + Math.random();
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
Code:
<?php
session_start();
if (isset($_GET["n"])) $n = $_GET["n"]; else $n = 0;
if (isset($_GET["d"])) $d = $_GET["d"]; else $d = 0;
$_SESSION["user_name"] = $n;
$_SESSION["user_date"] = $d;
if (isset($_GET["o"])) $_SESSION["user_order"] = $_GET["o"];
echo "SESSION HAS BEEN SET ON THE SERVER";
?>
Wenn ich allerdings auf den Link klicke wird nur ein leeres Fenster angezeigt. Liegt das daran dass in der Zwischenzeit die gelinkte Seite angezeigt wird und es deshalb Komplikationen gibt? Die neuen Werte sind trotzdem gesetzt in Firefox, in Safari allerdings nicht. Hier wird noch nicht mal ein leeres Fenster angezeigt beim klicken auf den Link (beim Button klapps auch in Safari).
Danke für jede Hilfe!
Patrick