2012-02-11 4 views
1

2つのDatePickersの日付を含むグリッドを制御したい場合は グリッドのみをリロードする方が良いかもしれませんが、ページ全体をリロードします。 とにかく、datepickerの値をリロードの配列で使用するために値を取得できません。どうすればいいですか?私はこれを持っている:あなたのアプローチはかなり良いですDatePickerの値の日付をjs()で使用するにはどうすればいいですか

class page_caja extends Page { 
function init(){ 
    parent::init(); 

    if(!$_GET['fInicial']){ 
     $fInicial=date('d/m/Y'); 
    }else{ 
     $fInicial=$_GET['fInicial']; 
    } 
    if(!$_GET['fFinal']){ 
     $fFinal=date('d/m/Y');  
    }else{ 
     $fFinal=$_GET['fFinal']; 
    } 
    $f=$this->add('Form'); 

    $inicial=$f->addField('DatePicker','fInicial','Fecha Incial')->set($fInicial); 
    $final=$f->addField('DatePicker','fFinal','Fecha Final')->set($fFinal); 

    //Tabla de Pagos Pendientes 
    $this->add('H3')->set('Movimientos'); 
    $g=$this->add('MVCGrid'); 
    $g->setModel('Caja');     
    $g->removeColumn('programaPago'); 
    $g->addColumn('date','created_dts','Fecha'); 
    $g->dq->where("DATE(created_dts)>=",$inicial->get()); 
    $g->dq->where("DATE(created_dts)<=",$final->get()); 
    $g->addTotals(); 


    $inicial->js('change',$this->js()->reload(array('fInicial'=>$inicial->js()->value(),'fFinal'=>$final->js()->value()))); 
    $final->js('change',$this->js()->reload(array('fInicial'=>$inicial->js()->value(),'fFinal'=>$final->js()->value()))); 


} 
} 

答えて

1

私はこのようにそれを書くだろうが、私は、それと間違って何も表示されません。私の方法は、フィルタが提出使用し、1つの余分リロードがかかりますが、それは理解することが非常に滑らかでシンプルな作品:

$filter = $page->add('Form'); 
$grid = $page->add('Grid')->setModel('Caja'); 

$filter->addField('date','d1')->js('change',$filter->js()->submit()); 
$filter->addField('date','d2')->js('change',$filter->js()->submit()); 

if($filter->isSubmited()){z 
    $this->memorize('d1',$filter->get('d1')); 
    $this->memorize('d2',$filter->get('d2')); 
    $grid->js()->reload()->execute(); 
} 

$d1=$this->recall('d1',null); 
if($d1)$grid->dq->where('date(created_dts)>=',$d1); 

$d1=$this->recall('d2',null); 
if($d2)$grid->dq->where('date(created_dts)<=',$d2); 

あなたはまた、(リロードにフィールドを組み入れることができる)が、その後、あなたはから$ d1と$ D2を読んでする必要があります$ _GET変数。

あなたがフィールドから値を取得できない場合は、単純な方法を試してみてください。

$form->addField('test')->js('change') 
    ->univ()->log(
     $form->getElement('test')->js()->val() 
    ); 

そして、出力用のインスペクタのコンソールを見て。

+0

おかげさまで、私は$ _GETで中継していました。ありがとうございました。 – mcanedo

関連する問題