[Ask] Filter Cgridview

hallooo Yii-ers…

salam kenal, saya baru pake framework ini.

Mau numpang tanya.

  • saya punya data table yang ditampilkan oleh Cgridview.

  • dalam table itu terdapat tangga_awal dan tanggal_akhir.

  • kemudian saya mempunyai form inputan untuk mencari filter berdasarkan tanggal_awal s.d. tanggal_akhir

  • bagaimana cara filter data berdasarkan form inputan (tanggal_awal s.d. tanggal_akhir)?

mohon bantuannya ya kk :D

setau saya bisa pake tanda > atau < di textbox field itu.

cobain aja.

gimana gan, udah bisa belum ? barusan check extension ada component baru tuh, mungkin bisa membantu masalah agan http://www.yiiframework.com/extension/sydatecolumn/

iya gan, tapi ane pengen bukan di dalem table nyarinya.

jadi ane pengen punya form filtering tersendiri. :D

mohon bantuannya ya gan. :D

belum pernah bikin sih. Tapi menurut saya bisa dengan utak atik bagian search() di model

trus di field kita harus bikin aturan. Misalnya dari programmer tentukan tilde(~) sebagai lambang untuk penggunaan betweennya seperti ini :

2~10

maka di search() kita bisa pakai coding buat split angkanya, dilanjutkan dengan penambahan kriteria pada CDbCriteria

form filtering sudah di generate sama yii untuk advanced search, coba klik advanced search diatas tabel/grid.

iya gan bisa, tapi kan cuma berdasarkan satu pencarian yang diinput.

Bisa gak klo dimodif pake betwen?. jadi saya pengen nyari [tanggal] diantara [tanggal_awal] s.d. [tanggal_akhir].

Dengan menggunakan 2 text inputan. Tolong ya gan bantu :D

itu bisa berdasarkan lebih dari satu pencarian gan, balik lagi ke jawaban semula gan bisa pake tanda < / > dan kalau agan mau cara lain bisa ubah method search dimodelnya pada bagian criterianya tambahkan condition untuk filter between tanggal tersebut.

kira2 begini :

$criteria = new CDbCriteria;

$criteria->condition = "ini condisi between query"

lalu return activedataprovidernya

semogas bisa membantu gan.

bisa kasih contoh pengkondisian dalam sebuah criteria gan?. maklum ane masih belum bisa baca code. masih meraba2. :P




$criteria = new CDbCriteria;

$criteria->condition = 'tgl BETWEEN '.$tgl_awal.' AND '.$tgl_akhir.'; 



yang pasti kamu harus buat variabel public dulu pada classnya.

btw betweennya bisa kyk gini




$split=$array = preg_split("/[\s]*[~][\s]*/", $this->tanggal);

$criteria->addBetweenCondition('delivery_order_no',$split[0],$split[1]);






  • split = memisahkan ‘~’