ajax: div neu laden

Godstyle

Erfahrenes Mitglied
Hey,

habe folgendes Problem, ich möchte Über ajax einen Div Bereich neu Laden lassen, zunächst einmal alle relevanten Codes:

Ordner Struktur:


/pages/profil/strg.php //soll die informationen von AJax auswerten
/pages/profil/ajax.js //das Ajax script
index.php // beinhaltet den div der neu geladen werden soll

es gibt eine .htacces Regel die den link manipuliert:

Code:
RewriteRule ^(.*)/(.*)/(.*)/(.*)/$ index.php?kat1=$1&kat2=$2&kat3=$3&kat4=$4    [L]
RewriteRule ^(.*)/(.*)/(.*)/$ index.php?kat1=$1&kat2=$2&kat3=$3			[L]
RewriteRule ^(.*)/(.*)/$ index.php?kat1=$1&kat2=$2				[L]
RewriteRule ^(.*)/$ index.php?kat1=$1						[L]


Datei: ajax.js

HTML:
idArr = new Array("link1", "link2");
 
    function $(id) {
        return document.getElementById(id);
    }
   
    window.onload = function() {       
        for(i = 0; i < idArr.length; i++){
            $(idArr[i]).onclick = function() {
               getHttpRequest(this.href);
               return false;
            }          
        }              
    }
   
    function getHttpRequest(url){
        getParam = url.substr(url.indexOf('#'));
       
        var xmlhttp = null;
        // Mozilla
        if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        }
        // IE
        else if (window.ActiveXObject) {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
     
        xmlhttp.open("GET", 'pages/profil/strg.php' + getParam , true);
         
 
        xmlhttp.onreadystatechange = function() {
            if(xmlhttp.readyState != 4) {
                $('pro_erg').innerHTML = 'Seite wird geladen ...';
            }
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                $('pro_erg').innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.send(null);        
    }
	function evalScript(scripts)
{	try
	{	if(scripts != '')	
		{	var script = "";
			scripts = scripts.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
	       	                         if (scripts !== null) script += arguments[1] + '\n';
 	        	                        return '';});
			if(script) (window.execScript) ? window.execScript(script) : window.setTimeout(script, 0);
		}
		return false;
	}
	catch(e)
	{	alert(e)
	}
}

die links:

HTML:
        <a href="#home" id="link1">Home</a><br />
        <a href="#gb" id="link2">Gästebuch</a><br />


Ich habe 2 vermutungen zum einen, dass das # in der ajax.js nicht richtig ausgewertet werden kann,
zum anderen das die .htaccess den link manipuliert wodurch sie nicht mehr erkannt wird.

Fakt ist jedenfalls, das ajax mir: Seite wird geladen ... zurück liefert.

lg
 
hy,

bin bei Ajax jetzt nicht der Profi aber lass dir mal die Variable getParam und "url" per alert ausgeben.

Ich habe die Vermutung dass beim 1ten mal keine "#" in der URL vorhanden ist, somit das IndexOf "-1" zurück liefert und der Befehl "substr" schief geht.

Da du die abfrage asynchron absetzt, müsste es bei nen Klick auf einen der Links dann aber funktionieren. "MÜSSTE"...

vielleicht hilft das ausgeben ja schon bei der Fehler suche.

mfg,
Doomt
 

Neue Beiträge

Zurück