2015-04-03 5 views
1

Я использую структуру Yii 1.1.15.Поиск Yii CGridView с помощью «&» содержит атрибуты

Я не могу найти & как символ в атрибуте (например, имя_маркета) в строке запроса. Если я вхожу & символ URL-адрес выглядит следующим образом:

localhost/doctors/brand/?brand[brand_name]=&&brand[brand_status]= 

Здесь дело brand[brand_name]=&. Он не учитывает & и принимается за завершение следующего параметра, если я просто кодирую этот символ, он становится: %26, поэтому URL-адрес становится localhost/doctors/brand/?brand[brand_name]=%26&brand[brand_status]= и дает правильный результат.

Но как кодировать текстовые данные фильтра yii CGridView?

Заранее спасибо.

+0

Грамматика и formattation – Michael

ответ

0

CGridView использует GET как тип ajax по умолчанию, а & - это разделитель параметров GET http-запроса, поэтому вы не можете использовать этот символ как часть вашей строки поиска. Я думаю, что решение использует POST вместо GET для ajax-запросов. Для изменения CGridView параметра АЯКСА от GET к POST, добавьте 'ajaxType' => "POST" в параметры cgridview:

<?php $this->widget('zii.widgets.grid.CGridView', array(
     'id'=>'...', 
     'ajaxType' => "POST", 
     'dataProvider'=>$model->search(), 
     'filter'=>$model, 
     'columns'=>array(
     ... 
     ), 
)); ?> 
+0

I судимого, но это не работает, я использовал также «EnableHistory» => верно, вы можете дать expample , –

+0

Вы уверены? Я тестировал его в своем CGridView, и он работал нормально. Я ввел '&' в качестве фильтра поиска, и сетка отправила его без каких-либо проблем! – hamed