I have begun implementing a master detail form, but ran into a problem. In the create.php form I have duplicated rows(HTML and fields) which are for user input, but this causes the highlighted/pre-selected fields(that have been chosen in the last form submission) on the webpage to duplicate… if I choose a value in the first row it automatically chooses the same in the second row. I use two models - both of them are passed to the form.
<?php
/* @var $this BookingController */
/* @var $model Booking */
$this->breadcrumbs=array(
'Bookings'=>array('index'),
'Create',
);
$this->menu=array(
array('label'=>'List Booking', 'url'=>array('index')),
array('label'=>'Manage Booking', 'url'=>array('admin')),
);
?>
<h1>Create Booking</h1>
<?php //$this->renderPartial('_form', array('model'=>$model)); ?>
<?php
/* @var $this BookingController */
/* @var $model Booking */
/* @var $form CActiveForm */
?>
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'booking-form',
// Please note: When you enable ajax validation, make sure the corresponding
// controller action is handling ajax validation correctly.
// There is a call to performAjaxValidation() commented in generated controller code.
// See class documentation of CActiveForm for details on this.
'enableAjaxValidation'=>false,
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary($model); ?>
<div class="row">
<?php echo $form->labelEx($model,'Id'); ?>
<?php echo $form->textField($model,'Id'); ?>
<?php echo $form->error($model,'Id'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'customerId'); ?>
<?php echo $form->textField($model,'customerId'); ?>
<?php echo $form->error($model,'customerId'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'date'); ?>
<?php echo $form->textField($model,'date'); ?>
<?php echo $form->error($model,'date'); ?>
</div>
<div>
<?php echo $form->labelEx($BookingRoom,'Room No'); ?>
<?php echo $form->dropDownList($BookingRoom, 'roomId', CHtml::listData(
Room::model()->findAll(), 'id', 'id'), array('single'=>'single', 'size'=>5)
); ?>
<?php echo $form->error($BookingRoom,'roomId'); ?>
</div>
<div>
<?php echo $form->labelEx($BookingRoom,'startDate'); ?>
<?php echo $form->textField($BookingRoom,'startDate'); ?>
<?php echo $form->error($BookingRoom,'startDate'); ?>
</div>
<div>
<?php echo $form->labelEx($BookingRoom,'endDate'); ?>
<?php echo $form->textField($BookingRoom,'endDate'); ?>
<?php echo $form->error($BookingRoom,'endDate'); ?>
</div>
<div>
<?php echo $form->labelEx($BookingRoom,'adults'); ?>
<?php echo $form->dropDownList($BookingRoom, 'adults', array('1'=>'1',
'2'=>'2',
'3'=>'3',
'4'=>'4',
'5'=>'5'), array('single'=>'single', 'size'=>5)
); ?>
<?php echo $form->error($BookingRoom,'adults'); ?>
</div>
<div>
<?php echo $form->labelEx($BookingRoom,'children'); ?>
<?php echo $form->dropDownList($BookingRoom, 'children', array('1'=>'1',
'2'=>'2',
'3'=>'3',
'4'=>'4',
'5'=>'5'), array('single'=>'single', 'size'=>5)
); ?>
<?php echo $form->error($BookingRoom,'children'); ?>
</div>
<div>
<?php echo $form->labelEx($BookingRoom,'Room No'); ?>
<?php echo $form->dropDownList($BookingRoom, 'roomId', CHtml::listData(
Room::model()->findAll(), 'id', 'id'), array('single'=>'single', 'size'=>5)
); ?>
<?php echo $form->error($BookingRoom,'roomId'); ?>
</div>
<div>
<?php echo $form->labelEx($BookingRoom,'startDate'); ?>
<?php echo $form->textField($BookingRoom,'startDate'); ?>
<?php echo $form->error($BookingRoom,'startDate'); ?>
</div>
<div>
<?php echo $form->labelEx($BookingRoom,'endDate'); ?>
<?php echo $form->textField($BookingRoom,'endDate'); ?>
<?php echo $form->error($BookingRoom,'endDate'); ?>
</div>
<div>
<?php echo $form->labelEx($BookingRoom,'adults'); ?>
<?php echo $form->dropDownList($BookingRoom, 'adults', array('1'=>'1',
'2'=>'2',
'3'=>'3',
'4'=>'4',
'5'=>'5'), array('single'=>'single', 'size'=>5)
); ?>
<?php echo $form->error($BookingRoom,'adults'); ?>
</div>
<div>
<?php echo $form->labelEx($BookingRoom,'children'); ?>
<?php echo $form->dropDownList($BookingRoom, 'children', array('1'=>'1',
'2'=>'2',
'3'=>'3',
'4'=>'4',
'5'=>'5'), array('single'=>'single', 'size'=>5)
); ?>
<?php echo $form->error($BookingRoom,'children'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->