рдпрд╣ рд╕рдм рдПрдХ рдирдИ рдиреМрдХрд░реА рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ, рдЬрд┐рд╕реЗ Zend рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ рдФрд░ Yii рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддрд╛ рдмрдирд╛рддреЗ рд╕рдордп, рдкреНрд░рдкрддреНрд░ рдореЗрдВ рдлрд╝реАрд▓реНрдб рдХреЗ рдбрд╛рдпрдирд╛рдорд┐рдХ рдЬреЛрдбрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЪреБрдирдиреЗ рдХреЗ рдмрд╛рдж, рдРрд╕рд╛ рдирд┐рд░реНрдгрдп рдЖрдпрд╛ред рдЖрдЗрдП рдЬрд╛рдиреЗ:
2 рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВред рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рдлреЙрд░реНрдо рдХреЛ рдХрдИ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдерд╛ - рд╡рд┐рдЬрд╝рд╛рд░реНрдб-рд╡реНрдпрд╡рд╣рд╛рд░ (http://www.yiiframework.com/extension/wizard-behavior) рдиреЗ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдорджрдж рдХреАред рдереЛрдбрд╝рд╛ рд░реЗрдбреА, рдПрдХ рдПрдХреНрд╢рди рдФрд░ рдПрдХ рдореЙрдбрд▓ рдмрдирд╛ред рдлрд╝реАрд▓реНрдб рд╕рддреНрдпрд╛рдкрди рд╕реНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╣реИред
Ajax рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реЗрдВрдбрд░-рдЖрдВрд╢рд┐рдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛, рдЬрд┐рд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рд╢рд╛рдорд┐рд▓ рдереЗред
рдлреЙрд░реНрдо рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
$form=$this->beginWidget('CActiveForm', array( 'id'=>'create_order_step1', 'enableClientValidation'=>true, 'clientOptions'=>array( 'validateOnSubmit'=>true, 'validateOnType' => true, ),));
рдЗрд╕рдореЗрдВ, рд╣рдо рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдЯрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
echo CHtml::button(' ', array('class' => 'place-add btn')); <script> $(".place-add").click(function(){ var index = $(".new-place").size()+1;
рдХреНрд░рд┐рдпрд╛:
public function actionField($index = false) { $model = new CreateOrderForm(); $this->renderPartial('_add_place_fields', array( 'model' => $model, 'index' => $index, )); }
рд╣рдореЗрдВ рдмреНрд▓реЙрдХ рдирдВрдмрд░ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА +1 рд╣реИред
рдЧрддрд┐рд╢реАрд▓ рдХреНрд╖реЗрддреНрд░:
<table class="new-place" id="place_n<?php echo$index; ?>"> <tr> <td> <?php echo CHtml::activeTextField($model, "place_weight[$index]"); </td> </tr> </table>
рдореВрд▓ рд░реВрдк рд╕реЗ, рд╣рдо рдХреЗрд╡рд▓ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕рддреНрдпрд╛рдкрди $ рдореЙрдбрд▓ рдХрд░рддреЗ рд╣реИрдВ-> рдорд╛рдиреНрдп (рдкрд░рд┐рджреГрд╢реНрдп) // рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрджрд▓ рджрд┐рдпрд╛ред
рдпрджрд┐ рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╣рдо рдореЙрдбрд▓ рдореЗрдВ рдлрд╝реАрд▓реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рджреГрд╢реНрдп рдореЗрдВ рджреЗрддреЗ рд╣реИрдВред (рддрд╛рдХрд┐ рд╕рддреНрдпрд╛рдкрди рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрдиреЗ рдкрд░, рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝реЗ рдЧрдП рдлрд╝реАрд▓реНрдб рдЧрд╛рдпрдм рди рд╣реЛрдВ)
if(isset($model->attributes['place_weight'])){ $count = count($model->attributes['place_weight']); } $this->render('view', compact('model', 'count');
рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
for($i =1; $i<$count; $i++){ $this->renderPartial('_add_place_fields', array( 'model' => $model, 'index' => $i, )); }
рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг - рдореЙрдбрд▓ рдФрд░ рд╕рддреНрдпрд╛рдкрди:
public function rules() { return array(array('place_weight', 'validatePlace', 'on'=>'step1'), ); } public function validatePlace($attribute,$params) // . { foreach($this->place_weight as $key_w => $weight){ if (empty($weight)) { $this->addError('place_weight['.$key_w.']', ' '); break; } } }
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдм рдХреБрдЫред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ yii рдкрд░ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧ, рдореЗрд░реА рддрд░рд╣, рдпрд╣ рдмрд╣реБрдд рд╕рдордп рдмрдЪрд╛рдПрдЧрд╛ред