У меня есть 3 зависимых выпадающих списка, а текстовое поле зависит от последнего выпадающего списка. Если одно из значений в последнем раскрывающемся списке, я хочу, чтобы значение текстового поля динамически менялось в зависимости от выбранного значения (оно из той же таблицы базы данных).Невозможно обновить текстовое поле на основе раскрывающегося списка Yii
Это вид третьего выпадающего списка:
<div class="row" id="id_subkeg">
<?php echo $form->labelEx($model, 'id_subkeg'); ?>
<?php
echo $form->dropDownList($model, 'id_subkeg', array(), array(
'style' => 'width: 100%',
'ajax' => array(
'type' => 'POST',
'url' => CController::createUrl('dynamicSatuan'),
'update' => '#' . CHtml::activeId($model, 'satuan'),
//'update'=>'#seksi',
'data' => array('id_subkeg' => 'js:this.value'),
)
)
);
?>
<?php echo $form->error($model, 'id_subkeg'); ?>
</div>
Это мнение TextField:
<div class="row" id="satuan">
<?php echo $form->labelEx($model, 'satuan'); ?>
<p class="hint" style="font-size: 80%">Contoh: Dokumen.</p>
<?php echo $form->textField($model, 'satuan', array('style' => 'width: 98%;', 'readonly' => FALSE)); ?>
<?php echo $form->error($model, 'satuan'); ?>
</div>
И это действие в контроллере:
public function actionDynamicSatuan() {
//$data = Subkegiatan::model()->findByPk($_POST['id_subkeg']);
$data = Subkegiatan::model()->findByPk('id_subkeg=:id_subkeg', array(':id_subkeg' => (int) $_POST['id_subkeg']));
echo $data->satuan;
}
Но он не работает в течение нескольких дней. Я не знаю, какую часть я пропустил. Я предполагаю, что выпадающее окно является зависимым выпадающим списком, расположенным над ним. Поэтому я, должно быть, пропустил какую-то часть.
Любая помощь очень ценится.
UPDATE: После нескольких дней поисков, наконец, получил его:
public function actionDynamicSatuan() {
$param_country = (int) $_POST['id_subkeg'];
$maxOrderNumber = Yii::app()->db->createCommand()
->select('satuan')
->from('subkegiatan')
->where('id_subkeg = ' . $param_country)
->queryScalar();
echo '<b>SATUAN: '. $maxOrderNumber.'</b>';
//echo CHtml::tag('input', array('type' => 'text', 'value' => $maxOrderNumber));
}
Спасибо. Но это, похоже, не работает. Ничего не происходит, и никаких ошибок не видно. – Safira
Кажется, что ваш раскрывающийся список пуст –
посмотреть ваш запрос: Chrome - dev tools - сеть. Куда он идет и что такое ответ. И это работает для меня так лок для ошибки. – ineersa