Я знаю, что этот вопрос может быть знаком большинству из вас, но позвольте мне спросить, потому что большинство ответов на связанные вопросы здесь, на этом форуме и на форуме YII, не получили удовлетворительного ответа. Мои два зависящих от падения рабочих стола отлично работают, а второй заполняется на основе выбора первого. Все значения взяты из базы данных. Теперь моя проблема заключается в том, что второй выпадающий список продолжает возвращать пустое значение даже после того, как значение выбрано и оно, похоже, не проверено. Я просматривал форумы, но ни один из них, похоже, не справился. Плиз помог мне. Это очень важно для меня.
EDITED: Прошу прощения, я предположил, что его sth, что вы уже знаете, но вот мой код: _form.php
<div class="row"> <?php echo $form->labelEx($users,'country_id'); ?> <?php echo $form->dropDownList($users,'country_id',CHtml::listData(Country::model()->findAll( array('order' => 'country')),'country_id','country'), array( 'class'=>'form-control', 'prompt'=>'Choose Your Country', 'ajax'=>array( 'type'=>'POST', 'url' => CController::createUrl('users/findcity'), 'data'=> array('country_id'=>'js:this.value'), 'update'=>'#city_id')) );?> <?php echo $form->error($users,'country_id'); ?> </div> <div class="row"> <?php echo $form->labelEx($address,'city_id'); ?> <?php echo CHtml::dropDownList('city_id','', array(), array('prompt'=>'Choose Your City','class'=>'form-control')); ?> <?php echo $form->error($address,'city_id'); ?> </div>
И вот моя функция контроллера, которая находит города, связанные с выбранной страной
public function actionFindcity() { $data = City::model()->findAll('country_id=:country_id', array(':country_id'=>$_POST['country_id'])); $data=CHtml::listData($data,'city_id','name'); echo "<option value=''>City</option>"; foreach($data as $value=>$name) echo CHtml::tag('option', array('value'=>$value),CHtml::encode($name),true); }
Я пробовал много способов, но я не могу понять, где проблема, я сомневаюсь в этой строке кода. Мне кажется, что я не нашел модель, которая отвечает на этот код:
<?php echo CHtml::dropDownList('city_id','', array(), array('prompt'=>'Choose Your City','class'=>'form-control')); ?>
Спасибо за любую помощь.