许多日期选择器以一种形式yii2

时间:2017-03-21 11:47:05

标签: php jquery datepicker yii2

我希望在我的表单中有各种日期选择器。不幸的是,只有第一个字段充当假设。这是我的代码:

GridView

结果如下:

enter image description here

只有第一个字段显示时钟图标,我可以点击它并选择小时。其余的就像普通的文本字段一样,单击“时钟图标”不会触发任何进一步的操作。我可以放任何我想要的字符串,字段接受它,只有第一个,工作字段拒绝字母等。这里有什么问题?

编辑
我认为问题是Yii为每个字段生成相同的ID。我怎么能改变呢?我尝试了所有这些,但根本不起作用:

<?php
    for ($i = 0; $i < 4; $i++) {
        ?>
        <div class="row">
            <div class="col-md-1">
                <?= ($i+1).'.' ?>
            </div>
            <div class="col-md-3">
                <?= $form->field($pres_rules[$i], 'date')->textInput() ?>
            </div>
            <div class="col-md-3">
                <?=
                $form->field($pres_rules[$i], 'time')->widget(TimePicker::className(), [
                    'pluginOptions' => [
                        'showMeridian' => false,
                        'defaultTime' => '12:00'
                    ],
                    'addonOptions' => [
                        'asButton' => true,
                    ]
                ]);
                ?>
            </div>
        </div>
        <?php
    }
    ?>

这是我想要更改的ID enter image description here

1 个答案:

答案 0 :(得分:2)

请参阅表格输入http://www.yiiframework.com/doc-2.0/guide-input-tabular-input.html的文档 所以你的代码应该是这样的:

<?php foreach ($pres_rules as $i => $pres_rule): ?>
<?= $form->field($pres_rule, "[$i]date")->widget(TimePicker::className(), [
        'pluginOptions' => [
            'showMeridian' => false,
            'defaultTime' => '12:00'
        ],
        'addonOptions' => [
            'asButton' => true,
        ]
    ]) ?>
<?php endforeach; ?>