繁体   English   中英

我如何获取要在js()中使用的DatePicker值日期

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

我想控制一个带有两个DatePickers上的日期的网格,我正在重新加载整个页面,尽管只重新加载网格可能更好。 无论如何,我无法获取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()
    );

然后观察检查器控制台的输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM