2012-02-11 3 views
1

두 DatePickers에서 날짜가있는 눈금을 제어하고 싶습니다. 눈금 만 다시로드하는 것이 더 좋을 수도 있지만 전체 페이지를 다시로드합니다. 어쨌든 datepicker의 값을 다시로드 할 때 배열에서 사용하기 위해 값을 가져올 수 없습니다. 어떻게해야합니까? 나는이 있습니다js()에서 DatePicker 값 날짜를 사용하는 방법

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

귀하의 접근 방식은 내가 이런 식으로 쓰기 것이지만, 나는 그것을 잘못 아무것도 볼 수없는 매우 좋다. 내 방법은 필터가 제출 사용하고 하나의 추가 재 장전이 필요하지만 그것을 이해하는 것은 매우 부드럽고 간단한 작동합니다

$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

관련 문제