来自Yii问题的CJuiDatePicker小部件

时间:2012-05-15 10:28:23

标签: datepicker yii options

我正在尝试在编辑时将DatePicker集成到生成的CRUD表单中 当我将名称作为数组(如textField生成)时,它不会弹出日历 如果我使用一个简单的名称(非数组)它可以工作...如果我完全退出名称它不起作用

我正在使用Yii 1.8

这是我的代码

    $this->widget('zii.widgets.jui.CJuiDatePicker', array(
    // 'name'=>'birthdate',
     'name'=>"MainVendorsInvoices[issued_date]", // the name of the field
     'value'=>$model->issued_date,  // pre-fill the value
     // additional javascript options for the date picker plugin
     'options'=>array(
            'dateFormat'=>'yy-mm-dd',
            'defaultDate'=>$model->issued_date,
            'buttonImage'=>Yii::app()->baseUrl.'/images/icons.date.png',
            'buttomImageOnly'=>true,
            'buttonText'=>'Select',
            'showAnim'=>'fold',
            'showOn'=>'button',
            'showButtonPanel'=>false,
            'yearRange'=>'1900',
     'debug'=>true,

    ),
     'htmlOptions'=>array(
     'style'=>'height:20px;'
     ),
     ));

3 个答案:

答案 0 :(得分:2)

查看页面上是否有相同名称的文本字段,例如。在高级搜索表单中。

如果同一页面上有两个具有相同名称的字段,则datepicker将仅显示其中一个字段。

此致

答案 1 :(得分:1)

让yii使用parent CJuiInputWidget classmodel属性自动为您确定名称,以便您可以这样做:

$this->widget('zii.widgets.jui.CJuiDatePicker', array(
 'model'=>$model,
 // 'value'=>$model->issued_date,  // pre-fill the value
 // instead of 'value' use 'attribute'
 'attribute'=>'issued_date', 
 // additional javascript options for the date picker plugin
 'options'=>array(
        'dateFormat'=>'yy-mm-dd',
        'defaultDate'=>$model->issued_date,
        'buttonImage'=>Yii::app()->baseUrl.'/images/icons.date.png',
        'buttomImageOnly'=>true,
        'buttonText'=>'Select',
        'showAnim'=>'fold',
        'showOn'=>'button',
        'showButtonPanel'=>false,
        'yearRange'=>'1900',
 'debug'=>true,

),
 'htmlOptions'=>array(
 'style'=>'height:20px;'
 ),
 ));

修改
由于您正在修改生成的表单,因此您可以将上面的部分放在gii生成的textField的位置,并保留此字段的其他行相同,例如:

<?php echo $form->labelEx($model,'issued_date'); ?>
<?php $this->widget('zii.widgets.jui.CJuiDatePicker'), array(// your datepicker options
  );?>
<?php echo $form->error($model,'issued_date'); ?>

答案 2 :(得分:1)

<?php
    $this->widget(
        'zii.widgets.jui.CJuiDatePicker',
        array(
            'name' => 'order_date',
            'value'=>Yii::app()->getRequest()->getParam("order_date"),
            'language' => Yii::app()->language == 'et' ? 'et' : null,
            'options' => array(
                'showAnim' => 'fold', // 'show' (the default), 'slideDown', 'fadeIn', 'fold'
                'showOn' => 'button', // 'focus', 'button', 'both'
                'buttonText' => Yii::t('ui', 'Select form calendar'),
                'buttonImage' => Yii::app()->request->baseUrl . '/images/calendar.png',
                'buttonImageOnly' => true,
            ),
            'htmlOptions' => array(
                'style' => 'width:80px;vertical-align:top'
            ),
        )
    );
?>