2015-10-09 5 views
-2

У меня есть проблема интеграции Yii и jQuery при попытке динамически добавлять поля, сгенерированные Yii, в мою форму. А именно, статический я использую этот код, чтобы иметь DropDownList на моей форме:Динамически добавлять элементы формы Yii с помощью jQuery

echo $form->label($model,Yii::t('candidates', 'Contact type')); 
$options = CHtml::listData(HrpContactTypes::model()->findAll(),'id','type'); 
$ct = array(); 
$b=1; 
for($i=0;$i<=count($options)-1;$i++) { 
    $ct[$b] = Yii::t('candidates', $options[$b]); 
    $b++; 
} 
echo $form->dropDownList($model,'contact_type_id',$ct,array('class'=>'form-control')); 

и я использую этот код, чтобы иметь ввод текста на моей форме:

echo $form->label($model,Yii::t('candidates', 'Contact')); ?> 
echo $form->textField($model,'contact', array('required'=>'required', 'class'=>'form-control')); 

Затем я использую это код динамически добавлять элементы в моей форме:

$('#addContact').click(function() { 
     $('#row').append(
      '<br><div class="col-md-6">contact type</div><div class="col-md-6">contact</div>' 
      ); 
     return false; 
    }); 

МОЙ ВОПРОС: КАК дИНАМИЧЕСКИ ADD YII DROPDOWNLIST И YII TEXT-INPUT с ПОМОЩЬЮ Jquery?

ответ

0

Поначалу обратите внимание на кодирование.

  1. Второй параметр CActiveForm::label() должен быть атрибут, и перевести его вы должны в своем классе модели (метод перекрывая attributeLabels()), а не в форме:

    public functions attributeLabels() { 
        return array(
         'candidates' => Yii::t('candidates', 'Contact type'), 
         ATTRUBUTE_NAME => ATTRIBUTE_LABEL 
        ); 
    } 
    
  2. Читайте о loops in php. Вместо того, чтобы объявить дополнительный Название переменной $b вы можете использовать петли Название переменной $i, также вы получите значения от $optios, начиная с 1, так что ваш последний элемент $ct всегда null, я думаю, что вы хотите, чтобы написать это:

    $options = CHtml::listData(HrpContactTypes::model()->findAll(),'id','type'); 
    $ct = array(); 
    for($i=0; $i<count($options); $i++) { 
        $ct[$i+1] = Yii::t('candidates', $options[$i]); 
    } 
    

Благодарю.

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