Ausgabe einer Funktion in einem Frame anzeigen

pchilfe

Erfahrenes Mitglied
Liebe Freunde,

Ich habe folgende Frage:

In einem Frame möchte ich ständig je 4 Minuten eine Liste von der Datenbank aktualisieren. Dafür habe ich folgende Ajax-Function geschrieben:

HTML:
var http_requestLOAD = createXMLHttpRequest();

function DLOAD(){
   if (http_requestLOAD) {
      http_requestLOAD.open('POST', 'NewLoad.php');
      http_requestLOAD.send('urL='+Arrfilter[0]+'&txtU='+Arrfilter[1]+'&txtO='+Arrfilter[2]+'&txtE='+Arrfilter[3]+'&txtV='+Arrfilter[4]+'&txtH='+Arrfilter[5]+'&txtX='+Arrfilter[6]+'&txtS='+Arrfilter[8]);
      }
     }

Ich weiss nicht, wie ich nun die Ausgabe von DLOAD() im Frame anzeigen.

Die Folgende function soll das tun, aber funcktioniert es nicht und erhalte keine Fehlermeldung:

HTML:
function Display(){
 document.Frame2.src = DLOAD();
}

setInterval('Display()',240000);

Kann jemand mir hilfen.

Vielen Dank im Vorraus.
 
Zuletzt bearbeitet:
Hi,

sieht für mich nach AJAX aus. Dort wird der onreadystate-Eigenschaft des Request-Objektes
eine Callback-Funktion zugewiesen. Diese regelt die weitere Verarbeitung der Serverantwort.
Code:
var http_request = false;

function macheRequest() {

    // Falls noch ein Request-Objekt existiert -> zunächst beenden
    if(http_request && http_request.readyState){
      http_request.abort( );
      http_request = false;
    }
    //http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }

    if (!http_request) {
        alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
        return false;
    }
    // Callback-Funktion
    http_request.onreadystatechange = new Function("Display()");

    http_request.open('POST', 'NewLoad.php', true);
    http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    http_request.send('urL='+Arrfilter[0]+'&txtU='+Arrfilter[1]+'&txtO='+Arrfilter[2]+'&txtE='+Arrfilter[3]+'&txtV='+Arrfilter[4]+'&txtH='+Arrfilter[5]+'&txtX='+Arrfilter[6]+'&txtS='+Arrfilter[8]);

}

function Display() {
  if(http_request.readyState == 4){
    if(http_request.status == 200){
      // Hier die Zuweisung an das Source-Attribut des Frames
      // document.Frame2.src = http_request.responseText;
    }else{
      alert('Bei dem Request ist ein Problem aufgetreten.');
    }
  }
}
Vielleicht hilft Dir das weiter.

Ciao
Quaese
 
Hallo,

Vielen Dank für die Antwort. Das mit Ajax funktioniert wunderbar. Aber die Zuweisung an das Source-Attribut des Frames funktioniert es nicht.

HTML:
document.Frame2.src = http_request.responseText;

Ich konnte die Ausgabe von Ajax nur mit document.write(http_request.responseText); sehen.

Der Internet Explorer zeigt keine Fehlermeldung. Firefox: document.Frame2 has no properties.

Irgend eine Idee?

Gruß ..
 
Kannst du in Frame2 nicht einfach eine leere Seite mit einem <div> anzeigen lassen und dann den Inhalt vom <div> ändern?
 
leider funktioniert es nicht mit:

HTML:
window.Frame2.location.href = http_request_load.responseText;.

Ich habe ein <div>-Element in der Ausgabe erzeugt:

<div id='LD1'> </div>

Mit der Anweisung:

HTML:
document.Frame2.getElementById('LD1').innerHTML = document.write(http_request.responseText); 

oder:

window.document.Frame2.getElementById('LD1').innerHTML = document.write(http_request.responseText);

funktioniert es immer noch nicht. :confused:

Gruß ...
 
Leider nicht. Es ist mir auch leider nicht erlaubt die Arbeit der Firma zugänglich zu machen.

Seit zwei Tagen arbeite an das Problem. Es hat mit Ajax Funktionen nicht zu tun.
Es funktioniert alles wunderbar außer die Zuweisung an dem Source-Attribute des Frames.

HTML:
window.document.Frame2.src=http_request.responseText;

oder 
document.Frame2.src=http_request.responseText;

Ich habe alles versucht. Daher kamm ich auf die Idee eine Function im Frame2 zu schreiben und http_request.responseText per Parameter übergabe im div-Element zu schreiben:

In der Hauptseite:
HTML:
Frame2.LOD(http_request_load.responseText);

im Frame:
HTML:
    function LOD(XX){
    document.getElementById('LD1').innerHTML = XX;
    }

    <div id='LD1'></div>

Auf diese Weise funktioniert alles wunderbar. Aber das ist keine saubere Arbeit.Da die von PHP erzeugte Seite im DIV-Element nicht ersetzt sondern sich überlagert.


Ok. Jungs .. Ich möchte euch mit dem Problem nicht aufhalten und tausand Danke schön für alles.
 
Zuletzt bearbeitet:
Also bei mir funktioniert beides, Ändern der location und ändern der src:
Code:
<html>
<head>
<title>Test</title>
<style type="text/css">
<!--
b{cursor:pointer}
-->
</style>
</head>
<body>
<center>
<b onclick="document.getElementById('LD1').src='http://www.microsoft.de'">src ändern(microsoft.de)</b>
|
<b onclick="window.LD1.location.href='http://www.tutorials.de'">location ändern(tutorials.de)</b>
</center>
<hr>
<iframe id="LD1" name="LD1" width="100%" height="500" src="http://www.google.de"></iframe>
</body>
</html>
 
Für das obige Beispiel:
Annahme es wird eine dynamische Seite vom PHP erzeugt. Das PHP-Script wird per Ajax-Funktionsbausteine aufgerufen.

HTML:
 function createXMLHttpRequest(){
   .... ....... ........ ........ ..... ..... ...................alles ist  richtig implementiert ..........
    http_request.onreadystatechange = new Function("Display()");
   }

function Display() {
  if(http_request.readyState == 4){
      //document.write(http_request.responseText); // Hier wird Seite wird korrekt angezeigt
     // Hier ist mein problem
      document.getElementById('Frame2').src.innerHTML = http_request.responseText; 
     }
    }

Ich habe alle Varianten ausprobiert, keine von denen Funktioniert:

HTML:
1.) document.getElementById('Frame2').src.innerHTML = http_request.responseText; 
2.) window.Frame2.src = http_request.responseText;
3.) window.Frame2.location.href = http_request.responseText;
4.) Frame2.location.href = http_request.responseText; 
// gleich wie document.write(http_request.responseText);
5.) window.Frame2.location.href = http_request.responseText;
6.) document.Frame2.src=http_request.responseText;

Wie kann ich http_request.responseText in einem Frame anzeigen?

Gruß ....
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück