Per Ajax eine externe PHP-Datei aufrufen

Vvendetta

Grünschnabel
Hallo allerseits,

ich bin bei dem Versuch über Ajax eine externe PHP-Datei aufzurufen und sie in ein HTML-Dokument einzupflegen auf ein bisher unbekanntes Hindernis gestoßen :rolleyes:
Bei der PHP-Datei wird ein Bild ( <img src="" alt="" /> ausgegeben.
Ich möchte dass das Bild in dem <span>-Tag ausgegeben wird.
Irgendwie werde ich das Gefühl nicht los, dass das Problem bei dem xmlHttp.responseText() liegt.

Mein Code sieht wie folgt aus:


Das ist meine ajaxabfrage.js
Code:
function CreateXmlHttpObjet()
{
var xmlHttp = null;
 
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
}
catch( e )
{
// Internet Explorer
try
{
xmlHttp = new ActiveXObject( "Msxml2.XMLHTTP" );
}
catch( e )
{
xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );
}
}
return xmlHttp;
}

    function getsterne()
    {
    xmlHttp = CreateXmlHttpObjet();
    if( xmlHttp == null ) return ;
    xmlHttp.onreadystatechange = function()
    {
    
    document.getElementById('sterne').innerHTML = xmlHttp.responseText;
}
    }
    xmlHttp.open( 'GET', 'http://domain.de/abfrage_schleife.php', true );
    xmlHttp.send( null );

hier haben wir das HTML-Dokument
Code:
<!DOCTYPE html>

<html>
<head>
    <title>Test</title>
    <script type="text/javascript" src="ajaxabfrage.js"></script>
      <style type="text/css">

    #widgetbody {
        background-image: url("widgetbody.jpg");
        background-repeat: no-repeat;
        height: 180px;
        margin: 70px;
        width: 150px;
}
    

    #sterne {
        padding-left: 39px;
        padding-top: 93px;
}
    

  </style>

</head>

<body>

    
<div id="widgetbody">
    <span id="sterne" onload="getsterne()"></span>
</div>                
                  

</body>
</html>

Ich hoffe ihr könnt mir helfen.
Ich danke für eure Aufmerksamkeit! ;)
 
Zuletzt bearbeitet:
Was genau ist denn dein Problem? Erhältst du eine Fehlermeldung? Wird überhaupt was angezeigt?
FireBug und die Fehlerkonsole sind deine Freunde ... und unsere auch, wenn du Hilfe brauchst.

Gruß
 
Das Problem war, dass einfach nichts angezeigt wurde. Wie gesagt, "war". Ich habe das Problem auf Umwegen gelöst. Und hier meine Lösung fuer Dritte, die dasselbe oder ein ähnliches Problem haben.
Ich denke nicht dass das der ausschlaggebende Grund war aber dennoch habe ich einfach mal versucht meine Browserweiche zu komprimieren

Vorher
Code:
function CreateXmlHttpObjet()
{
var xmlHttp = null;
 
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
}
catch( e )
{
// Internet Explorer
try
{
xmlHttp = new ActiveXObject( "Msxml2.XMLHTTP" );
}
catch( e )
{
xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );
}
}
return xmlHttp;
}

Nachher
Code:
function xmlhttp() {
    var xhr;
    
    if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest(); // IE 7+, alle anderen Browser
    } else if (window.ActiveXObject) {
        xhr = new ActiveXObject("Microsoft.XMLHTTP"); // IE 5-6
    }
    
    return xhr;
}

der zweite Teil des Codeschnipsels war die Implementierung einer externen PHP-Datei und deren Ausgabe.


Vorher
Code:
    function getsterne()
    {
    xmlHttp = CreateXmlHttpObjet();
    if( xmlHttp == null ) return ;
    xmlHttp.onreadystatechange = function()
    {
    
    document.getElementById('sterne').innerHTML = xmlHttp.responseText;
}
    }
    xmlHttp.open( 'GET', 'http://domain.de/abfrage_schleife.php', true );
    xmlHttp.send( null );


Nachher
Code:
    var xhr = xmlhttp();

    function Serveranfrage() {
        xhr.open ('GET', 'http://domain.de/include.php', true) ;
        xhr.onreadystatechange = gibDatenAus;
        xhr.send(null);
        
    }
    document.getElementById("sterne").onload = rufeServer();
    
    function Datenausgabe() {
        if (xhr.readyState == 4) {
            var ergebnis = xhr.responseText;
            document.getElementById("sterne").innerHTML = ergebnis;
            
        }
    }

Ich habe einfach versucht die Serveranfrage bzw den Request der PHP-Datei in eine Funktion und die Datenausgabe in eine andere Funktion zu packen. Und siehe da. Es funtkioniert! :D


Mit freundlichen Grüßen
Vvendetta
 
Zurück