Habe eine html-Seite (sagen wir page.html), welche eine JS-funktion anstößt (button, Funktion MakeRequest()), die einen AjaxRequest zu einem php-Skript startet (batch.php). Jenes php-Skript öffnet eine CSV-Textdatei und baut mit dem Prototype-Framework einen svg-Graphen aus den Werten der Textdatei.
Es schiebt zunächst ein div raus, und füllt dann dieses Div mittels JS mit der Grafik. Ich weiß nun nicht, wie ich diesen return in meine ursprüngliche html-Seite kriege.
Aber dann wird der JS code ja nicht interpretiert. Ebenso wird ja ein vom batch.php zurückgegebenes "<script type='text/javascript' >alert('hier');</script>" nicht interpretiert, sprich es gibt kein Fenster.
Die Frage reduziert: wie kann ich von der batch.php produzierten JS-code ausführen?
Also ich habe nun zwei Wege gefunden, von denen ich aber überhaupt nicht weiß, wie sauber sie sind. Vielleicht nochmal eine Hilfe...
Der return soll jetzt mal ein einfaches alert("hier kommt JS vom batch"); Also JS, und das soll interpretiert werden.
-
Das Script (das per AJAX aufgerufen wird) schreibt:
echo "alert('hier kommt JS vom batch');"
In der Callback-Funktion steht dann nicht mehr
document.getElementById('ajaxcontent').innerHTML = req.responseText;
sondern
eval(req.responseText);
-
Das Script (das per AJAX aufgerufen wird) schreibt:
echo "<script type='text/javascript' defer='defer'>alert('hier kommt JS vom batch');</script>";
und in der Callback-Funktion:
~~~javascript var div=document.createElement("div");
div.innerHTML=responseText;
document.body.appendChild(div);
Dit funktioniert hier jetzt. Welcher Weg ist besser?
Grüße