Problem: mit Ajax 2 Divs ändern?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem: mit Ajax 2 Divs ändern?

    Guten Morgen,

    bisher habe ich meine "Freundechatseite" immer mit frames erstellt. Nun habe ich vollständig auf CSS umgestellt und bin sehr sehr glücklich über die vielen Möglichkeiten, die CSS so bietet. Doch nun hänge ich an einem Folgeproblem der Umstellung.
    Bisher hatte ich u.a. 2 Frames, die regelmäßig neugeladen wurden. In dem Einen ist immer nur der letzte Eintrag aus einer Datenbank (Chatnachricht) und in dem Anderen wird angezeigt, wer gerade online ist. Es wurden also PHP Dateien refreshed.
    Da bei einem include dieser PHPs in verschiedene DIVs, mit entsprechendem refresh im Quellcode, immer die ganze Seite flickert, habe ich es mit AJAX versucht. Da gibt es ja schon tolle Scripte im Netz.

    Mit folgendem Code kann ich ohne die gesamte Seite neu laden zu müssen, zumindest in einem Div immer frische Infos angeben:

    Code:
    <script type="text/javascript"><!--
    
    
    /**
    	 *   XMLHttp-Objekt erstellen
    	 */
    	var xmlHttp = false;
    	/*@cc_on @*/
    	/*@if (@_jscript_version >= 5)
    	try {
    		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    	}
    	catch (e) {
    		try {
    			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    		catch (e2) {
    			xmlHttp = false;
    		}
    	}
    	@end @*/
    	if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
    		xmlHttp = new XMLHttpRequest();
    	}
    
    
    	/**
    	 *   Nachdem des Dokument vollständig geladen wurde
    	 *   wird onLoadAction aufgerufen.
    	 */
    	window.onload = onLoadAction;
    	
    	function onLoadAction() {
    		macheRequest('test.php');
    	}
    
    
    	/**
    	 *   Pause
    	 */
    	function pausecomp(millis) {
    		var date = new Date();
    		var curDate = null;
    		do { curDate = new Date(); }
    		while(curDate-date < millis);
    	}
    
    
    	/**
    	 *   Request vorbereiten und senden
    	 */
    	function macheRequest(url) {
    		if(xmlHttp) {
    			document.getElementById("quickview_show").innerHTML = "... lade ...";
    			xmlHttp.open("GET", url, true);
    		  xmlHttp.onreadystatechange = alertInhalt;
    			xmlHttp.setRequestHeader("Pragma", "no-cache");
    			xmlHttp.setRequestHeader("Cache-Control", "must-revalidate");
    			xmlHttp.setRequestHeader("If-Modified-Since", document.lastModified);
    			xmlHttp.send(null);
    		}
    	}
    
    
    	/**
    	 *   Request entgegennehmen und verarbeiten
    	 */
    	function alertInhalt() {
    		if (xmlHttp.readyState==4 && xmlHttp.status==200) {
    			pausecomp(0);
    			var response = xmlHttp.responseText;
    	    document.getElementById("quickview_show").innerHTML = response;
    		}
    	}
    
    
    	/**
    	 *   Funktion alle 15 Sekunden aufrufen
    	 */
    	var iv = setInterval("macheRequest('test.php')", 25000);
    
    
    
    
    
    
    //--></script>
    Ich bekomme es aber nicht hin, diesen Code so abzuändern, dass ich eine weitere PHP in einem anderen Div nachlade.
    Ich habe schon versucht einfach in dem zweiten Div eine Datei zu includen, die ebenfalls diesen Code mit entsprechenden Verweisen enthält. Dann wird jedoch immer nur diese ausgeführt und die erste erscheint nicht mehr.

    Hat jemand einen Tipp, wie ich mein Problem lösen kann oder einen Link zu einer Erklärung/Abhandlung? (-das was ich gefunden habe diesbezgl. war FÜR MICH nicht hilfreich.)

    Danke schon jetzt,

    Piego

  • #2
    Zitat von piego Beitrag anzeigen
    Ich habe schon versucht einfach in dem zweiten Div eine Datei zu includen, die ebenfalls diesen Code mit entsprechenden Verweisen enthält. Dann wird jedoch immer nur diese ausgeführt und die erste erscheint nicht mehr.
    Natürlich, weil du die (globalen) Variablen dann ja überschreibst.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Das dachte ich mir schon. Hast du evtl. NOCH EINE Anregung, wie ich das ändern kann?

      Danke

      Kommentar

      Lädt...
      X