Buenas tardes, Tal como dice el titulo del post mi pregunta es simple, se puede colocar operadores de busqueda a los datepicker? ya que por tengo una vista con fechainicio y fechafin, cuando selecciono una fechainicio busca solo las fehchas que coincidan exactamente con la fecha que coloco y no las fechas superiores, ya que tengo fechainicio y fechafin, me gustaria colocarle "fechaseleccionada" >= fechainicio y "fechaseleccionada" <= fechafin, es decir que no solo sea igual sino tambien mayor que, y menor que, según corresponda
aqui mi vista admin:
<h1>ADMINISTRADOR DE EVENTOS</h1>
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'tbl-evento-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'afterAjaxUpdate' => 'reinstallDatePicker', // (#1)
'columns'=>array(
'id',
array('name'=>'iddescripcionevento',
'value'=>'$data->iddescripcionevento0->nombre',
'filter'=>CHtml::activeTextField($model,'varDescripcionEvento'),
),
array('name'=>'idtipoevento',
'value'=>'$data->idtipoevento0->nombre',
'filter'=>CHtml::activeTextField($model,'varTipoEvento'),
),
/*
array('name'=>'Nombres del Expositor',
'value'=>'$data->idexpositor0->idpersona0->nombre',
'filter'=>CHtml::activeTextField($model,'varExpositorNombre'),
),
array('name'=>'Apellidos del Expositor',
'value'=>'$data->idexpositor0->idpersona0->apellido',
'filter'=>CHtml::activeTextField($model,'varExpositorApellido'),
),
*/
array('name'=>'Apellidos del Expositor',
'value'=>'$data->idexpositor0->idpersona0->nombre.\' \'.$data->idexpositor0->idpersona0->apellido',
'filter'=>CHtml::activeTextField($model,'varExpositorDatos'),
),
array('name' => 'fechainicio',
'value' => '$data->fechainicio',
'filter' => $this->widget('zii.widgets.jui.CJuiDatePicker',
array( 'model' => $model,
'attribute'=>'fechainicio',
'language' => 'es',
//'i18nScriptFile' => 'jquery-ui.min.js', //(#2)
'htmlOptions' => array(
'id' => 'datepicker_for_fechainicio',
'size' => '10'),
'options' => array("dateFormat"=>"dd/mm/yy",
'showButtonPanel'=> true,
"changeYear"=>true
)),true), // (#4)
),
array('name' => 'fechafin',
'value' => '$data->fechafin',
'filter' => $this->widget('zii.widgets.jui.CJuiDatePicker',
array( 'model' => $model,
'attribute'=>'fechafin',
'language' => 'es',
//'i18nScriptFile' => 'jquery-ui.min.js', //(#2)
'htmlOptions' => array(
'id' => 'datepicker_for_fechafin',
'size' => '10'),
'options' => array("dateFormat"=>"dd/mm/yy",
'showButtonPanel'=> true,
"changeYear"=>true
)),true), // (#4)
),
/*
'horas',
'observacion',
*/
'numerodeacta',
'libro',
array(
'class'=>'CButtonColumn',
'afterDelete'=>'function(link,success,data){ if(success) $("#statusMsg").html(data); }',
),
),
));
// (#5)
Yii::app()->clientScript->registerScript('re-install-date-picker', "
function reinstallDatePicker(id, data) {
//use the same parameters that you had set in your widget else the datepicker will be refreshed by default
$('#datepicker_for_fechainicio').datepicker(jQuery.extend({showMonthAfterYear:false, changeYear:true},jQuery.datepicker.regional['es'],{'dateFormat':'dd/mm/yy'}));
$('#datepicker_for_fechafin').datepicker(jQuery.extend({showMonthAfterYear:false, changeYear:true},jQuery.datepicker.regional['es'],{'dateFormat':'dd/mm/yy'}));
}
");
?>
Aqui el Search para ver si con el Criteria->compare se puede hacer algo, tambien hay que recordar que el formato de fecha que esta usando es dd/mm/YYYY
public function search()
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbCriteria;
$criteria->with = array(
'iddescripcionevento0',
'idtipoevento0',
'idexpositor0.idpersona0');
$criteria->together = true;
$criteria->compare('t.id',$this->id);
$criteria->compare('fechainicio::text',$this->fechainicio,true);
$criteria->compare('fechafin::text',$this->fechafin,true);
$criteria->compare('horas',$this->horas);
$criteria->compare('observacion',$this->observacion,true);
$criteria->compare('idautoridad', $this->idautoridad,true);
$criteria->compare('numerodeacta::text', $this->numerodeacta,true);
$criteria->compare('libro::text', $this->libro,true);
$criteria->addSearchCondition('iddescripcionevento0.nombre', $this->varDescripcionEvento, true, 'AND', 'ILIKE');
$criteria->addSearchCondition('idtipoevento0.nombre', $this->varTipoEvento, true, 'AND', 'ILIKE');
$criteria->addSearchCondition('CONCAT(idpersona0.nombre, \' \', idpersona0.apellido)',$this->varExpositorDatos,true, 'AND', 'ILIKE');
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
#'sort'=>array('defaultOrder'=>'t.id DESC')
'sort'=>array('defaultOrder'=>'t.numerodeacta DESC')
));
}