いくつかのページには、1 つのボックスと送信ボタンを含める必要があります。ビュー ファイルは DatePicker を使用して、ユーザーが入力ボックスに入力できるようにします。「Go」(送信)ボタンを押すと、日付に基づいて以下のコンテンツが変更されます。
このコードは複数のページで使用されるため、現在ウィジェットを使用しようとしています。私の問題は、フォームから POST リクエストを取得して使用する方法を考えていることです。モデルが必要ですか?現在のコードを以下に添付しますが、現在、$date が未定義であるというエラーが発生しています。エラーが発生することはわかっていましたが、これを行うために正確に何をする必要があるかについて少し混乱しています。
ウィジェットの現在のコード:
/保護された/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 -->
/保護された/コンポーネント/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 を使用して他のビュー/モデルに影響を与えるにはどうすればよいですか。