PHP in JS ausführen
Sahra
- javascript
Hallo,
laut einem Forum eintrag soll folgendes gehen
<html>
<head>
<script type="text/javascript">
<!--
function getphpinfo()
{
xmlHttp = CreateXmlHttpObjet();
if( xmlHttp == null ) return ;
xmlHttp.onreadystatechange = function()
{
document.getElementById( 'phpinfobox' ).innerHTML = xmlHttp.responseText;
}
xmlHttp.open( 'GET', 'test.php', true );
xmlHttp.send( null );
}
-->
</script>
</head>
<body>
<div id="phpinfobox"> </div>
<!-- ... -->
<input type="button" value="PHP Info" onclick="javascript:getphpinfo();" />
</body>
</html>
hat man nun in test.php
<?php echo phpinfo(); ?>
stehen.
Bei mir passiert leider NULL. Kann mir da jemand weiterhelfen und auch wie ich einen Wert text.php zurückbekomme und weiterverarbeiten kann. danke.
s
Hi,
laut einem Forum eintrag soll folgendes gehen
Das bezieht sich wohl auf die Nutzung des Objektes XMLHttpRequest - nennt sich auch AJAX.
Dient dazu, von JavaScript aus im Hintergrund HTTP-Requests absetzen und deren Ergebnis entgegenzunehmen und auswerten zu können.
Ist damit natürlich ein bisschen was anderes als das, was du im Titel formuliert hast - das geht nämlich nicht.
xmlHttp = CreateXmlHttpObjet();
Das wird so allerdings nicht gehen - denn das ist kein natives JavaScript-Objekt, sondern wird aus irgendeinem Framework o.ä. stammen. Und so lange du den Code dieses Frameworks nicht einbindest, gibt's dieses Objekt nicht, und damit kannst du von dem Scriptschnippsel auch nicht viel Funktion erwarten.
Bei mir passiert leider NULL.
In der JavaScript-Fehlerkonsole solltest du durchaus entsprechende Meldungen finden.
Kann mir da jemand weiterhelfen
Informiere dich, was XMLHttpRequest/AJAX grundsätzlich bedeutet, und wie man es verwendet.
Versuche dabei, die Grundlagen zu verstehen - und nicht Scriptcode zu kopieren, den du nicht verstanden hast, und dessen Nicht-Funktionieren du deshalb nicht deuten kannst.
MfG ChrisB
xmlHttp = CreateXmlHttpObjet();
Das sollte
xmlHttp = new XMLHttpRequest();
lauten (hinzu kommt noch eine Alternativlösung für ältere Internet Explorer).
xmlHttp.onreadystatechange = function()
{
document.getElementById( 'phpinfobox' ).innerHTML = xmlHttp.responseText;
Der readystate-Handler wird mehrfach aufgerufen und die Serverantwort ist erst verfügbar, wenn der readyState gleich 4 ist.
Hier fehlt also
if (xmlHttp.readyState == 4) {
/* erst dann ist responseText verfügbar */
}
Am besten liest du dich in einige Tutorials ein, anstatt bloß zweifelhaften Code zu kopieren.
http://webkompetenz.wikidot.com/docs:ajax
http://www.admin-wissen.de/tutorials/eigene-tutorials/webentwicklung/ajax-tutorial/
Mathias