Appeler une méthode au sein de portlet lors de la présentation sous forme

StackOverflow https://stackoverflow.com/questions/2855618

  •  27-09-2019
  •  | 
  •  

Question

J'ai un portlets qui contient un formulaire. Maintenant, ce que je veux atteindre est le suivant.

1) A Porlet contenant un formulaire est appelé dans une page via

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

2) Les remplissages utilisateur dans ce formulaire et clique sur Envoyer « Le bouton soumettre doit être un bouton ajax » 3) Quand soumettre a été appuyé sur le formulaire doit appeler une méthode dans la classe sous forme de portlets et la forme doit être remplacé par un message de remerciement. 4) Je ne veux que la vue actuelle dans le portlet remplacé par une autre vue.

Mon look classe portlet comme celui-ci

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');
    }
}

}
Était-ce utile?

La solution

Je crains que vous ne pouvez pas le faire avec portlet que depuis portlet lui-même ne peut pas être atteint via une URL. Vous devez créer une action de contrôleur proxy comme ceci:

ProxyController extends CController {
  function actionPortlet(){
    $portlet = new Polls();
    $portlet->usr_id = 123;
    $portlet->update();
  }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top