Страница 1 из 1

не могу получить ответ с контроллера в DropDownList

СообщениеДобавлено: 12 окт 2015, 18:45
Andriy
реализовано два связанных выпадающих списки, если использовать CHtml:: хелпер в "model " то ответ приходит но не записывается в модель,
вот Вюха
Код: Выделить всё


<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'page-form',
    'enableAjaxValidation'=>false,
));
 ?>


    <?php echo $form->errorSummary($model); ?>

    <div class="row">
        <?php echo $form->labelEx($model,'brend'); ?>
        <?php 
                    
         echo $form
->dropDownList($model,'brend', Brend::all(), array(
                 'empty' => '',
                     'ajax' => array(
                     'update' => '#model',
                     'type' => 'POST',
                     'url' => CController::createUrl('/admin/page/create'), 
                     
'data' => array('id_brend' => 'js:this.value'),
                                    )
        )); ?>
      
        <?php echo $form->error($model,'brend'); ?>
    </div>
    
    <div class="row">
        <?php echo $form->labelEx($model,'model'); ?>
       <?php echo $form->dropDownList($model,'model', array(), array('class' => 'width150')); ?>  
        <?php echo $form->error($model,'model'); ?>
    </div>

    <div class="row">
        <?php echo $form->labelEx($model,'conntent'); ?>
        <?php $this->widget('application.extensions.ckeditor.CKEditor', array(
                            'model'=>$model,
                            'attribute'=>'conntent',
                            'language'=>'ru',
                            'editorTemplate'=>'full',
                            )); ?>
        <?php echo $form->error($model,'conntent'); ?>
                
    </div>

    <div class="row">
        <?php echo $form->labelEx($model,'equipment'); ?>
    <?php  echo $form->dropDownList($model, 'equipment', Equipment::all(), array('empty' => '')); ?>
        <?php echo $form->error($model,'equipment'); ?>
    </div>

    <div class="row buttons">
        <?php echo CHtml::submitButton('Сохранить'); ?>
    </div>
 
<?php $this->endWidget(); ?>



вот контроллер

Код: Выделить всё



public function actionCreate
()
    {
        $model=new Page;
           
        $ajax 
= ($_POST['id_brend']);
        
            if
(!$ajax){
               $ajax = 1 + $ajax;
        }else{
               $ajax = 0 + $ajax;  
        
}
        
         $user 
= Brend::model()->findByPk($ajax);
         
         $userBooks 
= $user->modeli_auto;
         $list = CHtml::listData($userBooks, 
                 
'id','model');
         $data=CHtml::listData($user,'id','brend');
            if(Yii::app()->request->isAjaxRequest)
            {
        
            echo CHtml
::tag('option', array('value' => 0), CHtml::encode(''), true);
            foreach($list as $value=>$name)
            {
                echo CHtml::tag('option',
                           array('value'=>$value),CHtml::encode($name),true);
            }
            
            Yii
::app()->end();
        }
                
        if
(isset($_POST['Page']))
        {   
         
            $model
->attributes = $_POST['Page'];
          
            if
($model->save())
                $this->redirect(array('view','id'=>$model->id,));
        }

        $this->render('create',array(
            'model'=>$model,
        ));
    }




 

Re: не могу получить ответ с контроллера в DropDownList

СообщениеДобавлено: 13 окт 2015, 10:08
Koduc
Вы вызываете обновление элемента с id="model" вот в этой строке:
'update' => '#model',

Если же вы посмотрите исходный код страницы, то увидите что вот эта строка:
<?php echo $form->dropDownList($model,'model', array(), array('class' => 'width150')); ?>
создает элемент с более сложным id.
Просто впишите этот id в update и должно будет заработать вроде как.

Re: не могу получить ответ с контроллера в DropDownList

СообщениеДобавлено: 13 окт 2015, 12:29
Andriy
спасибо! все получилось я уже пробовал все ! и

<?php echo $form->dropDownList($model, CHtml::activeId(......), l', array(), array('empty' => '')); ?>