Hallo.
http://ajage.aj.funpic.de/html
Bei mir sollen die Menüeinträge der Sidebar per Ajax geladen werden.
Beim Klicken auf ein Link soll die asynchrone Anfrage gestartet werden:
JavaScript:
PHP-Backend:
Fast alles funktioniert: Wenn ich auf den Link klicke, dann wird auch load_subnav() ausgeführt; Wenn ich nur load_subnav.php ausführe indem ich "load_subnav.php?NAV=Home" aufrufe, dann werden ebenfalls die Einträge geladen; das JavaScript an sich funktioniert auch, denn das Progress-Bildchen wird angezeigt... Doch irgendwie, wie der responseText nicht angezeigt...
hMMmm.. auch wenn ich die Bedingung "if(searchReq.readyState == 4 && searchReq.status==200)" weglasse klappt es nicht.
MfG J!M!
http://ajage.aj.funpic.de/html
Bei mir sollen die Menüeinträge der Sidebar per Ajax geladen werden.
Beim Klicken auf ein Link soll die asynchrone Anfrage gestartet werden:
HTML:
<a onClick=load_subnav("Home");>Home</a>
JavaScript:
HTML:
function load_subnav(NAV){
ajax_preload = new Image();
ajax_preload.src = "../../images/ajax.gif";
searchReq = false;
function getXmlHttpRequestObject(){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
}
else{
if(window.ActiveXObject){
return new ActiveXObject("Microsoft.XMLHTTP");
}
else{
alert("Your browser doesn't support the XMLHttpRequest-Object. Please check for the newest version of your browser.");
return false;
}
}
}
searchReq = getXmlHttpRequestObject();
if(searchReq && (searchReq.readyState == 4 || searchReq.readyState == 0)){
searchReq.open("GET", 'load_subnav.php?NAV=' + NAV, true);
searchReq.onreadystatechange = handleResponse;
searchReq.send(null);
}
function handleResponse(){
if (searchReq.readyState == 4 && searchReq.status==200){
document.getElementById('sidebar').innerHTML = searchReq.responseText;
}
else{
document.getElementById('sidebar').innerHTML = '<img src="../../images/ajax.gif" alt="" style="margin-left: 50px;">';
}
}
}
PHP-Backend:
HTML:
<?php
$NAV = $_GET['NAV'];
include('create_database_connection.php');
//Load subnavigation
$sql_query = mysql_query("SELECT * FROM ".$NAV) or die (mysql_error());
while($SUB_NAV = mysql_fetch_array($sql_query)){
echo '<a onClick="load_content('.$SUB_NAV['SUBNAV'].');">'.$SUB_NAV['SUBNAV'].'</a>';
}
?>
Fast alles funktioniert: Wenn ich auf den Link klicke, dann wird auch load_subnav() ausgeführt; Wenn ich nur load_subnav.php ausführe indem ich "load_subnav.php?NAV=Home" aufrufe, dann werden ebenfalls die Einträge geladen; das JavaScript an sich funktioniert auch, denn das Progress-Bildchen wird angezeigt... Doch irgendwie, wie der responseText nicht angezeigt...
hMMmm.. auch wenn ich die Bedingung "if(searchReq.readyState == 4 && searchReq.status==200)" weglasse klappt es nicht.
MfG J!M!
Zuletzt bearbeitet: