ホームページ >バックエンド開発 >PHPチュートリアル >高度な検索オプションが多すぎる場合に、Yii の CGridView でページングを行った後に PHP がクラッシュする問題を解決しました。
高度な検索オプションが多すぎる場合、yii の CGridView でページング後に PHP がクラッシュする問題を解決します
リバース リダイレクト PHP がクラッシュする理由は、実際には、ページング URL に追加する必要のない空のオプションが多すぎるためです。
次のコードを views/layouts/main.php ファイルの最後に配置して、CGridView ページング リンクのアドレスを修正できます。
<?php Yii::app()->clientScript->registerScript('pagerHref', " $(function(){ $('.pager a').each(function(){ var href = $(this).attr('href'); var page = href.match(/\/([\w]+)_page\/([0-9]+)/); if (page != null) { page = page[1]+'_page='+page[2]; } else { page = ''; } var sort = href.match(/\/([\w]+)_sort\/([\w]+)/); if (sort != null) { sort = sort[1]+'_sort='+sort[2]; } else { sort = ''; } var fields = $('.search-form form').serializeArray(); var data = ''; $.each(fields, function(i, field){ if (field.value != '') { if (data == '') { data += field.name + '=' + field.value; } else { data += '&' + field.name + '=' + field.value; } } }); if (data != '' && page != '') { page = '&' + page; } if ((data != '' || page != '') && sort != '') { sort = '&' + sort; } var url = '".$this->createUrl($this->id.'/'.$this->action->id)."?' + encodeURI(data) + page + sort; $(this).attr('href', url); }); }); "); ?>