LSpreee: AJAX request - Aufgerufenes soll Graphen produzieren

Beitrag lesen

Hey, stehe gerade etwas auf dem Schlauch.

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. Der standardmäßige Return des Prototype-Frameworks ist sowas wie:

<div id="whiteboard" style="width: 600px; height: 300px; background-color: rgb(255, 255, 255);"></div>

<script type="text/javascript">  
var plot = new Graphic.SVGRenderer('whiteboard');  
var draw      = new Graphic.Rectangle(plot);  
var axis      = new Graphic.Polyline(plot);  
var graph     = new Graphic.Polyline(plot);  
var arrows    = new Graphic.Polygon(plot);  
graph.addPoints([[0,300],[1,299.96585183021],[2,299.94515052668],[3,299.92648529846],[4,299.917975548],[5,299.92346822529],[6,299.91872320752],[7,299.90934438683],[8,299.90472781287],[9,299.901557704],[10,299.89961862772],[11,299.89478947374],[12,299.88591643614],[13,299.87562572107],[14,299.86912866702],[15,299.86483257116],[16,299.8625667872],[17,299.8639385857],[18,299.87082386942],[19,299.89220333109],[20,299.90687065505],[21,299.8869932123],[22,299.86833966968],[23,299.85580087617],[24,299.84974586856],[25,299.86198291774],[26,299.89239505999],[27,299.88735927465],[28,299.87489917722],[29,299.86675471812],[30,299.86398475211],[31,299.86618709516],[32,299.8661565788],[33,299.86258744532],[34,299.85813754406],[35,299.85132627662],[36,299.84414879388],[37,299.84165887517],[38,299.84083834024],[39,299.83909922666],...  
  
(...)  
  
}draw.setFill({r: 255, g: 255, b: 255, a:200});draw.setBounds(40, 10, 550, 250);plot.add(draw);  
plot.add(axis);  
plot.add(graph);  
  
</script>  

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.

Normalerweise habe ich in der Funktion, die den Request verarbeitet, eine Methode "responseText" auf dem AjaxRequestObject, um die Rückgabe/Ausgabe des php-Skriptes anzuzeigen.

shematisch:

function MakeRequest(){  
  var req = AjaxRequestObject();  
  
  var method  = 'GET';  
  var url     = '/scaling.php/action/process/cc/'+cachecd;  
  var asynch  = true;  
  
  req.open(method, url, asynch);  
  req.onreadystatechange = handleRequest();  
}  
  
function handleRequest(){  
  (...)  
  document.getElementById('ajaxcontent').innerHTML = req.responseText;  
  (...)  
}  

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?

Wenn das nicht geht, wie kann ich mein Problem lösen.

Viiiiielen Dank!