• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

div refreshen?

clubsound

New member
Gut also beim Problem:

Ich habe ein div feld, bei dem der inhalt mittels <? php include("ausgabe.php"); ?> ausgegeben wird!
Nun will ich einfach das sich NUR der div berreich alle 30sek aktualisiert weil sich die ausgabe.php laufend änderd und dies auf der hauptseite dargestellt weren soll! ;)

Bis jetz habe ich es so das sich die komplette seite refresht, das ist jedoch extrem störend!

Gibt es da vielleicht irgnd eine möglich keit bei der nur das div feld refresht wird?
I
 
Moin!

Such mal hier in den Foren (oder bei google etc.) nach AJAX, aber laß Dir gesagt sein: das is nix für alle Browser. Ggf. solltest Du die Benutzung von Frames/ Iframes in Betracht ziehen (auch wenn diese "aus der Mode sind").

Ahoi - Pit
 
Funktioniert mit
* Microsoft Internet Explorer (und Browser die IE-basiert sind) 4.0 und höher
* Mozilla Firefox, d. h. die Gecko-basierte Familie der Mozilla-Browser (Firefox 1.0 und Mozilla 1.4 oder höher)
* Opera 7.6 und höher
* Apple Safari 1.2 und höher
* Netscape 7.1 und höher
* Konqueror

HTML:
<html><head>
<title>clubsound - AJAX: reload div</title>
<script type="text/javascript">
/*** Ändern ***/

var seks = 10; // Anzahl Sekunden bis zum reload

function init() {
	document.getElementById("counter").firstChild.nodeValue = "Reload alle " + seks + " Sekunden.";
	setInterval("ajax_start()",seks * 1000);
	setInterval("frame_start()",seks * 1000);
}


/********** Lösung mit AJAX ************/

	
/*** Ändern ***/
var doc = "http://localhost/Tests/ajax_file.php";
// (abs.) Pfad zur PHP-Datei

/**********************************/
/*** Ab hier nichts mehr ändern ***/

var req; // XML-Antwort-Objekt
var queryResult; // Zeiger auf Ergebnis

function loadXMLDoc(url)  // Aufrufende Funktion
{
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();
        }

    }
}

function processReqChange() // Funktion verarbeitet Daten
{
    // only if req shows "complete"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
		var response  = req.responseXML.documentElement;
		response = response.getElementsByTagName('result')[0].firstChild.nodeValue;
		document.getElementById("ajax_div").firstChild.firstChild.nodeValue = response;
        } else {
		alert("Ein Fehler ist aufgetreten. (Lesen von XML-Dokument)");
		return false;
        }
    }
}

function ajax_start() // Init-Funktion
{
    loadXMLDoc(doc);
}

/********** Lösung mit Frames **********/

function frame_start() // Init-Funktion
{
    document.getElementById("frames_div").getElementsByTagName("iframe")[0].src = "frame_file.php";
}
</script>
</head>
<body>
<h1>Reload einer PHP-Datei in ein DIV???</h1>
<h2>Zwei Möglichkeiten:</h2>
<ul>
<li>Mit <a href="http://de.wikipedia.org/wiki/AJAX">AJAX</a></li>
<li>Mit <a href="http://google.de?q=frames+selfhtml">Frames</a></li>
</ul>
<p>Dargestellt wird in beiden Fällen ein PHP-File, welche Server-zeit
und IP ausgibt.</p>
<a href="#" onClick="init()">START</a><p id="counter"> </p>
<h3>Mit AJAX</h3>
<div id="ajax_div"><p>Hier das Div.</p></div>
<h3>Mit Frames</h3>
<div id="frames_div"><iframe></iframe></div>
</body>
</html>

ajax_file.php
PHP:
<?php

/** ajax_file.php **/

header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="UTF-8"
  standalone="yes"?><res>
<result>';

	$date = date("H:i:s");
	$ip = $_SERVER['REMOTE_ADDR'];
	echo "$date\n$ip";

echo '</result></res>';

?>
frame_file.php
PHP:
<?php

	$date = date("H:i:s");
	$ip = $_SERVER['REMOTE_ADDR'];
	echo "$date\n$ip";

?>
Have fun.
 
Moin!
jeko schrieb:
Mit AJAX ist das kein Problem, davon würde ich aber abraten, da die Technik nicht ausreichend crossbrowser ist.
(Quelle: Link) ;)

Ich hab nix gegen Ajax und nix dagegen, wenn die Welt sich im Monatstakt ändert (oder Meinungen zu dem was abgeht). :D

Ahoi - Pit
 
hehe...

"Naja, was interessiert mich mein Geschwätz von gestern?" :p

Anmerkung: Dieser Post entstand zu einem grossen aus Unwissenheit über die Materie :). Inzwischen hab ich AJAX etwas kennengelernt und entdeckt, was es kann... :grin:
 
Zurück
Oben