Wie Rufe Ich Über Buttons Jqplot Funktionen Auf? Id Passt Yii Nicht

Hallo zusammen,

ich habe die jqPlot Extension im Einsatz um Diagramme darzustellen. Dazu möchte ich über verschiedene Buttons die Eigenschaften des Diagramms verändern. Es stockt bei mir in dem Aufruf des richtigen Objektes.

Mein Ziel: Button mit Reset Zoom Funktion

In meiner View habe ich bereits versucht die id des Diagramms zu überschreiben, was leider nicht gegriffen hat.

Meine View:


$this->widget('ext.jqplot.JqplotGraphWidget',

                            array(

                                'htmlOptions'=>array(

                                       'style'=>'width:800px;height:500px;margin:10px 0px 10px 20px;',

                                       'id'=>'myPlot',

                                ),...


<button type="button" value="reset" onclick="myPlot.resetZoom();" name="resetPlotZoom">Reset Zoom</button>

Der Button myPlot.resetZoom() wirft folgende Warnung zurück:


ReferenceError: myPlot is not defined

Yii generiert irgendwie noch selbst die id für das Diagramm und ich bin noch nicht dahinter gekommen welche diese wäre. Der div-Container im HTML-Code hat eine id=yw0 selbst damit funktioniert es nicht. Folgende Versuche führten auch ins Leere:




<button type="button" value="reset" onclick="myPlot.resetZoom();" name="resetPlotZoom">Reset Zoom</button>

<button type="button" value="reset" onclick="yw0.resetZoom();" name="resetPlotZoom">Reset Zoom</button>

<button type="button" value="reset" onclick="yw0.jqplot-target.resetZoom();" name="resetPlotZoom">Reset Zoom</button>

<button type="button" value="reset" onclick="jqplot-target.resetZoom();" name="resetPlotZoom">Reset Zoom</button>

<button type="button" value="reset" onclick="canvas.resetZoom();" name="resetPlotZoom">Reset Zoom</button>

<button type="button" value="reset" onclick="canvas.jqplot-event-canvas.resetZoom();" name="resetPlotZoom">Reset Zoom</button>

Der Button yw0.resetZoom() wirft folgende Warnung zurück:


TypeError: yw0.resetZoom is not a function

Würde das ganze in einer einfachen Website stehen funktioniert es so:


<button onclick="plot1.resetZoom();" type="button" value="reset"></button>

mit


var plot1 = $.jqplot('chart1', [goog], { ...

Nun, alles ist noch aktuell, kann nicht aufs jqplot diagramm zugreifen.

Hier ist die Funktion zur Registrierung des jQuery-Skripts.




public function run(){

		$id=$this->getId();

		$this->htmlOptions['id']=$id;        


		echo CHtml::openTag($this->tagName,$this->htmlOptions);

		echo CHtml::closeTag($this->tagName);


		$plotdata=CJavaScript::encode($this->data);

		$flotoptions=CJavaScript::encode($this->options);

		

		Yii::app()->getClientScript()->registerScript(__CLASS__.'#'.$id,"$.jqplot('$id', $plotdata, $flotoptions);");

	}

Und ich nochmals, eine echo Ausgabe über Yii::app()->getClientScript() liefert das ganze Skript, mich interessiert wie man es ansprechen kann.


["scripts"]=>

  array(1) {

    [4]=>

    array(1) {

      ["JqplotGraphWidget#yw0"]=>

      string(1399) "$.jqplot('yw0', ...

Was entspricht dem Fragezeichen


? = $.jqplot('yw0', ...