1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Ajax newbie

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von NightMare, 20.04.07.

  1. NightMare

    NightMare Zuccalmaglios Renette

    Dabei seit:
    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
     
  2. symfony

    symfony Erdapfel

    Dabei seit:
    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 :).
     
    Gubbie gefällt das.

Diese Seite empfehlen