imagecreate session zend framework ajax- HILFE

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • imagecreate session zend framework ajax- HILFE

    Hi Board,

    ich komme nach langer Zeit mal nicht mehr alleine weiter.

    Ich habe eine Applikation basierend auf Zend Framework (Zends MVC Application) gebastelt.

    Ich habe eine Seite, die Diagramm darstellt. Das Diagramm wird dynamisch über php generiert.

    Nun will ich die Daten des Diagramms klickbar machen, das funzt ja über den <area shape..."> zeug.

    Erstmal mein Code:

    In meinem View gebe ich das Diagramm folgendermaßen aus:

    Quellcode

    1. <img src="myproject/myAction/some/parameters">

    In der entsprechenden Action (myAction) erstelle ich das Bild und gebe es aus:

    Quellcode

    1. $chart = new Barchart($chartData);
    2. $chart->showChart();


    Nun will ich die Balken des Diagramms klickbar machen. Also habe ich meine chart klasse um die Methode getCoords() erweitert, die mir ein Array mit den entsprechenden Koordinaten zurückgibt.

    Da diese Action aber über <img ...> aufgerufen wird, komme ich so nicht an die getCoords() ran.

    Daher will ich die Koordinaten in der Session speichern und diese später (nachdem das Bild geladen wurde), abholen (Ajax).

    Also habe ich die Action entsprechend erweitert um die Koords in der Session zu speichern und diese bei einem eingehenden XHR-Request auszugeben:

    PHP-Quellcode

    1. <?php
    2. $session = Zend_Registry::get('session');
    3. if($this->getRequest()->isXmlHttpRequest()){
    4. //XHR REQUEST, KOORDINATEN ALS JSON SENDEN
    5. $coords = $session->coords;
    6. $this->gethelper('json')->sendJson($coords);
    7. } elseif($this->getRequest()->isGet()){
    8. //NORMALER GET REQUEST, DIAGRAMM ERSTELLEN AUSGEBEN UND KOORDINATEN IN SESSION
    9. $cF = new ChartFactory();
    10. $barchart = $cF->getChartObject('Barchart', $someBarData);
    11. $session->coords = $barchart->getCoords();
    12. $barchart->showChart();
    13. }
    Alles anzeigen


    Jetzt habe ich in meinem View ein bisschen JQuery, dass einen XHR-Request auf die o.g. Action absetzt um die Koordinaten als JSON zu erhalten.

    Quellcode

    1. $('#chartpicid').load(function(){
    2. $.post("myproject/myAction/format/json", ..., funcion(data){
    3. alert(data);
    4. }, "json");
    5. });


    Jetzt zum Problem:

    Es werden mir nicht die richtigen Koordinaten zurückgegeben. Also manchmal die richtigen, passend zu meinem Diagramm, manchmal falsche - ein klick hinten dran. Als würde die Session-Variable nicht richtig gesetzt werden, wenn die Action über <img src=""> aufgerufen wird.

    Habe ich irgendwie einen Denkfehler?! Ich dachtge schon die Zeit wäre das Problem: dass zum Zeitpunkt der Abfrage der Session-Variable über AJAX diese noch überhaupt nicht gesetzt wurde. Also habe ich ein bisschen analysiert und herausgefunden, dass der XHR-Request ein paar sekunden nach dem Laden des Bilds abgesetzt wird. Die Session Variable müsste da also schon gesetzt sein.

    Warum bekomme ich da nur Murks? Doch irgend ein Denkfehler? Ich kann leider den ganzen Code nicht posten wegen Zend Framework (zu viele actions views zeilen usw);
    ----[Blockierte Grafik: http://www.smilie-harvester.de/smilies/Alltag/putzen.gif] Nein ich bin nicht die Signatur, ich Putz hier nur ---

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von eseL ()