I want to make history in cgridview filtering. But does the filtering.
model search function and rules function
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('uyeID, adi, soyadi, dogum_yeri, dogum_tarihi, nufus_ili, nufus_ilcesi, anne_adi, baba_adi, meslek, tel, cinsiyet, adres, adres_ili, adres_ilcesi, uye_gorevi, uye_kayit_tarihi, uye_durumu', 'required'),
array('nufus_ili, nufus_ilcesi, meslek, kan_grubu, cinsiyet, adres_ili, adres_ilcesi, uye_gorevi, uye_durumu', 'numerical', 'integerOnly'=>true),
array('uyeID, tel', 'length', 'max'=>11),
array('uye_resim, adres', 'length', 'max'=>255),
array('e_posta', 'safe'),
// The following rule is used by search().
// @todo Please remove those attributes that should not be searched.
array('uyeID, adi, soyadi, uye_resim, dogum_yeri, dogum_tarihi, nufus_ili, nufus_ilcesi, anne_adi, baba_adi, meslek, tel, e_posta, kan_grubu, cinsiyet, adres, adres_ili, adres_ilcesi, uye_gorevi, uye_kayit_tarihi, uye_durumu', 'safe', 'on'=>'search'),
);
}
public function search()
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('uyeID',$this->uyeID,true);
$criteria->compare('adi',$this->adi,true);
$criteria->compare('soyadi',$this->soyadi,true);
$criteria->compare('uye_resim',$this->uye_resim,true);
$criteria->compare('dogum_yeri',$this->dogum_yeri,true);
$criteria->compare('dogum_tarihi',$this->dogum_tarihi,true);
$criteria->compare('nufus_ili',$this->nufus_ili);
$criteria->compare('nufus_ilcesi',$this->nufus_ilcesi);
$criteria->compare('anne_adi',$this->anne_adi,true);
$criteria->compare('baba_adi',$this->baba_adi,true);
$criteria->compare('meslek',$this->meslek);
$criteria->compare('tel',$this->tel,true);
$criteria->compare('e_posta',$this->e_posta,true);
$criteria->compare('kan_grubu',$this->kan_grubu);
$criteria->compare('cinsiyet',$this->cinsiyet);
$criteria->compare('adres',$this->adres,true);
$criteria->compare('adres_ili',$this->adres_ili);
$criteria->compare('adres_ilcesi',$this->adres_ilcesi);
$criteria->compare('uye_gorevi',$this->uye_gorevi);
$criteria->compare('uye_kayit_tarihi',$this->uye_kayit_tarihi,true);
$criteria->compare('uye_durumu',$this->uye_durumu);
/* if(!empty($this->uye_kayit_tarihi))
{
$mysqlDate = date("Y-m-d", strtotime($this->uye_kayit_tarihi));
$criteria->compare('uye_kayit_tarihi', $mysqlDate );
}
*/
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'sort'=>array(
'defaultOrder'=>'uyeID ASC' // sonucları üye numarasına göre sırala
),
'pagination'=>array(
'pageSize'=>5 // sayfada 5 tane sonuç göster
),
));
}
search Conroller action
public function actionArama($kriter)
{
/// arama yapmasını sağlayan kod $_POST olursa çalışmaz
$aramasonucu = new Uyeler('search');
$aramasonucu->unsetAttributes();
if(isset($_GET['Uyeler']))
$aramasonucu->attributes=$_GET['Uyeler'];
/// arama yapmasını sağlayan kod bitiş
$this->render('arama', array('aramasonucu'=> $aramasonucu,'kriter'=> $kriter));
}
search view file
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider' => $aramasonucu->search(),
'filter' => $aramasonucu,
'afterAjaxUpdate'=>'kayit_tarihi', // tarihi seçince çalışmasını ajax fonksiyonu
'columns' => array(
array(
'header'=>'#',
'value'=>'$this->grid->dataProvider->pagination->currentPage*$this->grid->dataProvider->pagination->pageSize + $row+1', // satır numarasını gösteriyor // row is zero based
),
array(
'name' => 'meslek',
'type' => 'raw',
'value' => 'CHtml::encode($data->meslekler->meslek)',
),
array(
'name' => 'tel',
'type' => 'raw',
'value' => 'CHtml::encode($data->tel)'
),
array(
'name' => 'e_posta',
'type' => 'raw',
'value' => 'CHtml::encode($data->e_posta)',
),
array(
'name' => 'kan_grubu',
'type' => 'raw',
'value' => 'CHtml::encode($data->kangrubu())',
'filter' => $kangrubunagore,
),
array(
'name' => 'cinsiyet',
'type' => 'raw',
'value' => 'CHtml::encode($data->cinsiyet=="1")?("Erkek")<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/sad.gif' class='bbc_emoticon' alt=':(' />"Kadın")',
'filter'=> $cinsiyetegore,
),
array(
'name' => 'adres_ili',
'type' => 'raw',
'value' => 'CHtml::encode($data->adresIli->ad)',
'filter'=> CHtml::listData(Iller::model()->findAll(array('order' => 'ilID')),'ilID','ad'),
),
array(
'name' => 'adres_ilcesi',
'type' => 'raw',
'value' => 'CHtml::encode($data->adresIlcesi->ad)',
),
array(
'name' => 'uye_gorevi',
'type' => 'raw',
'value' => 'CHtml::encode($data->uyegorevi())',
'filter'=> $uyegorevinegore,
),
array(
'name' => 'uye_kayit_tarihi',
'type' => 'raw',
'value' => 'CHtml::encode($data->uye_kayit_tarihi)',
'filter'=>$this->widget('zii.widgets.jui.CJuiDatePicker',array(
'name'=>'uye_kayit_tarihi',
'language' => 'tr',
// additional javascript options for the date picker plugin
'options'=>array(
'showAnim'=>'fold',
'dateFormat' => 'yy-mm-dd', //save to db format
// 'altFormat' => 'dd-mm-yy', // show to user format
'changeMonth' => 'true', // ay değiştirme
'changeYear' => 'true', // yıl değiştirme
'showOtherMonths'=>true,// Show Other month in jquery
'selectOtherMonths'=>true,// ay seçebilme
//'showButtonPanel'=>true, // altta kapat ve bugün butonlarını oluşturuyor.
'yearRange'=>'1900:2099', // yıl aralığı
),
'htmlOptions'=>array(
'id' => 'kayit_tarihi',
'style'=>'width:100px;vertical-align:top'
),
),true), // true ifadesini yazmazsak grid içinde görünmüyor
),
array(
'name' => 'uye_durumu',
'type' => 'raw',
'value' => 'CHtml::encode($data->uye_durumu=="1")?("Aktif")<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/sad.gif' class='bbc_emoticon' alt=':(' />"Pasif")',
'filter'=> $uyelikdurumunagore,
),
),
));
Yii::app()->clientScript->registerScript('uye-kayit-tarihi-sec', "
function kayit_tarihi(id, data) {
//use the same parameters that you had set in your widget else the datepicker will be refreshed by default
$('#kayit_tarihi').datepicker(jQuery.extend({showMonthAfterYear:false},jQuery.datepicker.regional['tr'],{'dateFormat':'yy-mm-dd'}));
}
");
break;
header('Refresh:3; url='. $this->createUrl('uye/index'));
throw new CHttpException(404,'The specified post cannot be found.');
// $this->render('mesaj',Yii::app()->user->setFlash('error', "Hata! Lütfen arama kriteri seçiniz."));
}