Frage

Ich habe ein Portlet, die ein Formular enthält. Nun, was ich erreichen will, ist die folgende.

1) A Porlet ein Formular enthält, wird innerhalb einer Seite über

genannt
<?php $this->widget('form'); ?>

2) Der Benutzer füllt dieses Formular aus und klickt anschließend auf „Der Submit-Button sollte eine Ajax-Taste sein“ 3) Wenn einreichen gedrückt wurde sollte die Form sollte ein Verfahren in der Form Portlet-Klasse aufrufen und das Formular mit einer Meldung Danke ersetzt werden. 4) Ich möchte nur die aktuelle Ansicht im Portlet mit einer anderen Ansicht ersetzt.

Meine Portlet-Klasse sieht wie folgt aus

Yii::import('zii.widgets.CPortlet');

class Polls extends CPortlet{

    public $usr_id=''; 


    public function init(){

        $cs = Yii::app()->clientScript;
        $cs->registerCoreScript('jquery');
        parent::init();
    }

    protected function renderContent(){    
        $this->render('form');
    }

    public function update(){
       $this->render('thankyou');
    }
}

}
War es hilfreich?

Lösung

Ich fürchte, Sie kann es nicht mit Portlet nur seit Portlet selbst nicht über eine URL erreichbar ist. Sie haben eine Proxy-Controller-Aktion wie diese erstellen:

ProxyController extends CController {
  function actionPortlet(){
    $portlet = new Polls();
    $portlet->usr_id = 123;
    $portlet->update();
  }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top