javascript - Yii+datepicker boostrap 如何更新网格

标签 javascript php gridview yii datepicker

我有以下问题。我有一个城市,我想放两个盒子日期(从-到)。选择时间段时我想更新网格,但问题就在这里。到目前为止,这是我的代码

$dateisOn = CHtml::textField('Event[from_date]', '',
    array('id' => 'from', 'data-date-format' => 'yyyy-mm-dd')) .
    '  До ' . CHtml::textField('Event[from_date]', '',
     array('id' => 'to', 'data-date-format' => 'yyyy-mm-dd'));
$this->widget('ext.widgets.StyledGridWidget', array(
'id' => 'event-grid',
'dataProvider' => $model->search(),
'enablePagination' => false,
'filter' => $model,
'columns' => array(
    array(
        'name' => 'product_id',
        'value' => '$data->product_id'
    ),
    array(
        'name' => 'cnt',
        'header' => 'Брой',
        'value' => '$data->cnt'
    ),
    array(
        'name' => 'code',
        'value' => '$data->code'
    ),
    array(
        'name' => 'date',
        'filter' => $dateisOn,
    ),
),

));

这是 js 日期选择器:

 var checkin = $('#from').datepicker({

    onRender: function(date) {

    }
}).on('changeDate', function(ev) { 

    var newDate = new Date(ev.date);
    newDate.setDate(newDate.getDate() + 1);
    checkout.setValue(newDate);
    checkin.hide();
    $('#to')[0].focus();
}).data('datepicker');

var checkout = $('#to').datepicker({
    onRender: function(date) {

    }
}).on('changeDate', function(ev) {
    checkout.hide();
}).data('datepicker');

这是我的模型函数搜索

public function search() {
   //var_dump($this->date_first); exit;
    $criteria = new CDbCriteria;
    $criteria->with = (array('order', 'product'));
    $criteria->compare('product.id', $this->product_id);
    $criteria->compare('product.code', $this->code);
    $criteria->compare('cnt', $this->cnt);

    $criteria->select = 'count(t.product_id) AS cnt, t.product_id, product.code';
    $criteria->order = 'cnt DESC';
     $criteria->group='t.product_id';
    $criteria->limit = 10;       
    if (!empty($this->from_date) && empty($this->to_date)) {
        $criteria->condition = "order.updated_at >= '$this->from_date'";  
    } elseif (!empty($this->to_date) && empty($this->from_date)) {
        $criteria->condition = "order.updated_at <= '$this->to_date'";
    } elseif (!empty($this->to_date) && !empty($this->from_date)) { 
        $criteria->condition = "order.updated_at  >= '$this->from_date' and order.updated_at <= '$this->to_date'";
    }


    $criteria->together = true;

    return new CActiveDataProvider($this, array(
        'criteria' => $criteria,
    ));
}

最佳答案

首先,您应该修复 to_date 字段:

$dateisOn = CHtml::textField('Event[from_date]', '',
    array('id' => 'from', 'data-date-format' => 'yyyy-mm-dd')) .
    '  До ' . CHtml::textField('Event[to_date]', '',
    array('id' => 'to', 'data-date-format' => 'yyyy-mm-dd'));

你也可以修改你的搜索功能,你可以简单地使用:

$criteria->compare('order.updated_at', '>='.$this->from_date);  
$criteria->compare('order.updated_at', '<='.$this->to_date);  

关于javascript - Yii+datepicker boostrap 如何更新网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22165513/

相关文章:

javascript - 使用 javascript 获取 gridview 文本框值的总和并在标签中显示总计

php - Yii - 在 GridView 单元格内渲染小部件

javascript - iOS HTML5 Canvas toDataURL

javascript - 如何在 React 组件中加载谷歌地图标记

javascript - jquery 日期格式,每个浏览器都不同?

php - 150个字段更新 - PHP + MYsql最佳解决方案

javascript - 使用 chrome 扩展程序将自定义按钮添加到 gmail 收件箱

php - 不使用命令行恢复 postgresql 转储(.sql 文件)?

javascript - 使用php和javascript将随机数放入txt文件中

c# - 如何在GridView的TemplateField中找到Control?