在几页上,我需要包含一个框和一个提交按钮。视图文件使用 DatePicker 允许用户填写输入框。点击“开始”(提交)按钮后,我将根据日期更改以下内容。
我目前正在尝试使用小部件,因为此代码将在多个页面上使用。我现在的问题是我想知道如何从表单中获取 POST 请求并使用它。我需要一个模型吗?我将在下面附上我当前的代码,但现在我收到 $date 未定义的错误。我知道这会出错,但我对我到底需要做什么感到有点困惑。
小部件的当前代码:
/protected/views/dateWidget.php
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'date-form',
'enableAjaxValidation'=>false,
'enableClientValidation' => true,
)); ?>
<p class="note">
Fields with <span class="required">*</span> are required.
</p>
<?php echo $form->errorSummary($date); ?>
<div class="row">
<?php echo $form->labelEx($date,'date'); ?>
<?php
$this->widget('zii.widgets.jui.CJuiDatePicker', array(
'model' => $model,
'attribute' => 'date',
'language' => 'ja',
'i18nScriptFile' => 'jquery.ui.datepicker-ja.js',
'options' => array(
'showOn' => 'both', // also opens with a button
'dateFormat' => 'yy-mm-dd', // format of "2012-12-25"
),
'htmlOptions' => array(
'size' => '10', // textField size
'maxlength' => '10', // textField maxlength
),
));
?>
<?php echo $form->error($date,'date'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton('Add'); ?>
</div>
<?php $this->endWidget(); ?>
</div>
<!-- form -->
/protected/components/DateWidget.php
<?php
class DateWidget extends CWidget
{
/**
* @var CFormModel
*/
public $form;
public function run()
{
// if (! $this->form instanceof CFormModel) {
// throw new RuntimeException('No valid form available.');
// }
$this->render('application.views.dateWidget', array('form'=>$this->form));
}
}
?>
那么问题是:我如何使用 DateForm 中的 $_POST 来影响其他视图/模型。