如何获取要在js()中使用的DatePicker值date

how do I get the DatePicker value date to use in js()

本文关键字:DatePicker date 何获取 获取 js      更新时间:2023-09-26

我想控制一个在两个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())));

}
}

你的方法很好,我没有发现任何问题,尽管我会这样写。我的方法使用过滤器提交,并需要额外的一次重新加载,但它的工作非常顺利,理解起来也很简单:

$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);

您也可以将字段合并到reload()中,但应该从$_GET变量中读取$d1和$d2。

如果您无法从字段中获取值,请尝试更简单的方法:

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

然后观察Inspector控制台的输出。