Aufruf einer Methode innerhalb Portlet wenn Formular
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');
}
}
}
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();
}
}