2016-07-15 3 views
0

Я новичок в yii1, застрял в проблеме. Мне нужно, чтобы мой выпадающий список выбирался на основе идентификатора, переданного с другой страницы.установить выбранный вариант в раскрывающемся списке, используя yii1

мой контроллер

$cat = $_POST['mySelect']; 
$post = file_get_contents("..................."); 
$category = CJSON::decode($post, true); 
$this->render('//Product/index', array('category'=>$category,'cat'=>$cat)); 

Просмотр страницы

<?php 

echo CHtml::label('Category : ','cat'); 
         $options = array(); 
          foreach($category as $user) : 

           foreach($user as $use): 

            $options[$use['id']] = $use['name']; 
            if($options[$use['id']]== $cat){ 
             $sel='selected'; 
            } 
           endforeach; 
          endforeach; 

          echo CHtml::dropDownList('mySelect', 'name', $options,array('class'=>'selectpicker select_box','selected'=>$sel,'onchange'=>'select_bl(this.value)')); 

?> 

У меня нет базы данных.

я не знаю, как использовать

echo CHtml::dropDownList($cat, 'category',Html::listData(category::model()->findAll(), 'id', 'name'),$classification_levels_options); 

может ли один помочь мне с этим ???

В моем коде $ cat является идентификатором идентификатора выбранной категории, а категория $ - это список всех категорий.

ответ

0

Привет посмотреть синтаксис CHtml::dropDownList это

dropDownList($name,$select,$data,$htmlOptions=array()) 

так что ваши syntax должны быть

<?php 
foreach($category as $user){ 
           foreach($user as $use){ 

            $options[$use['id']] = $use['name']; 
                    } 
         } 
    echo CHtml::dropDownList('category',$cat, $options); 

Я assumning (из Вашего вопроса), что $options является array из category, которые у вас есть прибудете и $cat является величиной key любых category

Обычно мы используем CHtml :: ListData получить массив

, если у вас есть модель categoriestable позволяет сказать, что имя model является Category.php, то вы можете просто использовать findall и данные CHtml::list получить array

$options = CHtml::listData(Category::model()->findAll(), 'id', 'name')); 

тогда просто не использовать // не нужно использовать цикл по каждому элементу

echo CHtml::dropDownList('category',$cat, $options); 
+0

Большое вам спасибо, это было действительно полезно .... –

0

// $ кошки = Ваш идентификатор категории, чтобы выбрать

эхо CHtml :: DROPDOWNLIST ('категория', $ кошки, Html :: ListData (категория :: модель() -> FindAll(), ' id ',' name '));

+0

показывает ошибку "включают (category.php): не удалось open stream: Нет такого файла или каталога " –

+0

в вашем запросе проверьте правильность вашего имени. Категория :: model() -> findAll() – nshiv

+0

У меня нет класса модели. –

Смежные вопросы