• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Es regnet, ist neblig und kalt, alle sind krank und der Chef wird zunehmend cholerisch. Das Thema des Monats ist also folgerichtig --> Das Grau(en)
    Wir sind gespannt, war Euch dazu einfällt! Zum Wettbewerb --> Klick

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... o_O 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
 

symfony

Erdapfel
Registriert
20.07.06
Beiträge
2
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