検索文字列をコントローラーに送信し、利用可能な場合は検索結果を表示するための単純な検索フォーム (site/search.php) があります。CGridView を使用してデータを表示しています。 更新これが私のビュー(site/search.php)ファイルです:
<form name="quickSearchForm" action="<?php echo Yii::app()->createUrl("site/search"); ?>" method="POST">
<div data-role="fieldcontain">
<input type="search" name="searchText" id="searchText" value="<?php echo $searchText; ?>"/>
<input type="submit" name="submitBtn" id="submitBtn" value="search"/>
<a href="#">Advanced</a>
</div>
</form>
<?php
if (!empty(itemList)) {
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'task-grid',
'dataProvider'=>$itemList,
'pager'=>array(
'header' => '',
'firstPageLabel' => '<<',
'prevPageLabel' => '<',
'nextPageLabel' => '>',
'lastPageLabel' => '>>',
),
'template'=>'{pager}{items}{pager}',
'columns'=>array(
array(
'name' => 'name',
'value' => '$data->name',
),
array(
'name' => 'date',
'value' => 'date("d/m/Y",strtotime($data->date) )',
),
),
),);
} //end if
?>
コントローラでは、$searchText を使用して CActiveDataProvider でデータを取得し、search.php にレンダリングします。
<?php
$this->render($view = "search", array(
'searchText' => $searchText,
'itemList' => $itemListBySearch,
'taskResult' => $tasks,
));
更新を終了
私の問題は、$itemList に多くの項目があり、GridView が改ページされることです。しかし、ボタンページ[2]をクリックすると、ブラウザが直接アクセスしr=site/search&page=2
、itemListが失われます!
代わりに ajax を使用してもいいですr=site/search&page=2
か?