как запускать виджет yii при нажатии кнопки

У меня есть этот виджет:

<?php class Search extends CWidget { public $dataProvider = null; public function init() { $criteria = new CDbCriteria(); if ( isset($_GET['file']) ) { $criteria->compare('fileName', $_GET['file'], true, 'OR'); $criteria->compare('tags', $_GET['file'], true, 'OR'); } $this->dataProvider = new CActiveDataProvider("Files", array( 'criteria' => $criteria, //'countCriteria' => $criteria, 'pagination'=>array( // results per page 'pageSize'=>1, ), )); } public function run(){ $this->render('site/result', array( 'dataProvider' => $this->dataProvider, 'pages' => $this->dataProvider->pagination, )); } } ?> 

как я могу запустить этот виджет только при нажатии кнопки поиска и как просмотреть его результат в представлении reuslt который находится в папке сайта

Related of "как запускать виджет yii при нажатии кнопки"

Возможно, я вас неправильно понял, но, думаю, у вас немного путаницы в отношении виджета. Избегайте
длинный ответ, я сделал модель ниже

введите описание изображения здесь

Вопрос 1: Как я могу запустить этот виджет только при нажатии кнопки поиска?

Идея состоит в том, что вы помещаете содержимое виджета в скрытый div, а затем добавляете скрипт jQuery, чтобы показывать его после нажатия кнопки поиска

 <div id='search-result' style="display:none"><?php $this->widget(...) ?></div> <script> $('#search-button-id').click({ // do something $('#search-result').show(); })</script> 

Вопрос 2: как просмотреть его результат в представлении reuslt, который находится на сайте папки?

Имао, я рекомендую вам не делать этого. Виджет является независимой частью, вы можете использовать его для многих конкретных целей и во многих местах вашего проекта, поэтому просто поместите простой вид для виджета, который будет отображаться самостоятельно, вместо того чтобы пытаться отобразить область видимости вне виджета. Он должен выглядеть следующим образом:

 /your-app/protected/extensions/widgets/search/Search.php /your-app/protected/extensions/widgets/search/views/result.php // view for rendering