• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Ajax newbie

NightMare

Zuccalmaglios Renette
Registriert
09.11.04
Beiträge
263
Hallo zusammen,
ich bastle mir ein kleines Admintool. Dazu möchte ich vorallem einmal AJAX etwas näher ausprobieren. Habe dazu auch ein Skript, mit welchem ich per Link ein neues Fenster in einen <div> laden kann (ist nicht von mir!).
Code:
/***********************************************
* Dynamic Ajax Content- © Dynamic Drive DHTML code library ([url]www.dynamicdrive.com[/url])
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at [url]http://www.dynamicdrive.com/[/url] for full source code
***********************************************/

var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
var bustcacheparameter=""

function ajaxpage(url, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
if (bustcachevar) //if bust caching of external page
bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
page_request.open('GET', url+bustcacheparameter, true)
page_request.send(null)
}

function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=page_request.responseText
}

Die Site, welche ich in den <div> lade enthält 2 neue <div>'s. Nun möchte ich, dass mit folgendem Skript, welches ich gemäss einem Tutorial erstellt habe, in einem der beiden "neuen" <div> eine Tabelle dauernd neugeladen wird. Leider schaffe ich das nicht... :-/ Füge ich dieses Skript ebenfalls im Headbereich dazu, so funktioniert das andere Skript nicht - die Site wird also garnicht geladen. Füge ich es am Anfang der zweiten Site ein funktioniert es ebenfalls nicht - was wohl daran liegt, dass das Skript nicht neu interpretiert wird!?

- weiss jemand, wie ich das lösen könnte?

Hier noch das zweite Skript
Code:
// aktuelle Daten laden
loadData();

// alle 5 Sekunden neue Daten holen
setInterval("loadData()",3000);

function loadData()
{
 if (xmlHttp) {
	 xmlHttp.open('GET', 'tmpl/user/mitteilungen.data.php?user=<? echo $crm_user;?>', true);
	 xmlHttp.onreadystatechange = function () {
		 if (xmlHttp.readyState == 4) {
			 document.getElementById("asb_content").innerHTML = xmlHttp.responseText;
		 }
	 };
	 xmlHttp.send(null);
 }

grüsse Nightmare
 
Schau dir mal Frameworks ala Prototype (vielleicht inkl. Extension script.aculo.us) oder jQuery an. Diese bieten eine Vielzahl an Funktionalitäten, welche dir für deinen Adminbereich helfen können. Da kannst du dann ajax-Requests in 2 Zeilen handeln :).
 
  • Like
Reaktionen: Gubbie