Как получить данные из select-option в ActiveField?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
svil
Сообщения: 563
Зарегистрирован: 2018.02.12, 22:41

Как получить данные из select-option в ActiveField?

Сообщение svil »

Выбираю в select город и его значение нужно использовать далее. Если select у id country-name, я пыталась к нему привязать вывод. Не вышло. Как его получить и вывести?

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

<?php
$form = ActiveForm::begin(); ?>


    <?php     $items = \app\models\Country::find()
            ->select(['name'])
             ->where(['between', 'population', '200000000', '20000000000'])
            ->indexBy('name')
            ->column();
$params = [
    'prompt' => 'любой'
];
echo $form->field($country, 'name')->dropDownList($items, $params);
?>
<p><a href="<?= \yii\helpers\Url::to(['country/find','country-name'=>'value']) ?>">Выбрать</a></p>

<?php
ActiveForm::end();
?>
Пыталась так в контроллере :

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

public function actionFind ()
    {
       
        $qu = trim(Yii::$app->request->post('country-name'));
       // $search= Yii::$app->$request->get('country-name');
        return $this-> render('find', ['qu'=>$qu] );
    }
Исходный код в браузере:

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

<form id="w0" action="/~svetlanailina/yii3/web/index.php?r=country%2Findex" method="post">
<input type="hidden" name="_csrf" value="P4HagygLXqS6owMw9M6HzpHqCSzfKf2ySnH3pQVOghFT4r_iW20a6fSQVgmthsqaw9NLarROn_gvHI_GX37kZg==">

    <div class="form-group field-country-name">
<label class="control-label" for="country-name">Name</label>
<select id="country-name" class="form-control" name="Country[name]">
<option value="">любой</option>
<option value="Brazil">Brazil</option>
<option value="China">China</option>
<option value="India">India</option>
<option value="United States">United States</option>
</select>

<div class="help-block"></div>
</div><p><a href="/~svetlanailina/yii3/web/index.php?r=country%2Ffind&country-name=value">Выбрать</a></p>
</form>
kwasti
Сообщения: 262
Зарегистрирован: 2016.01.28, 16:14

Re: Как получить данные из select-option в ActiveField?

Сообщение kwasti »

добавь в контроллере и сразу поймешь где и как получить значение.

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

var_dump(Yii::$app->request->post());
Аватара пользователя
svil
Сообщения: 563
Зарегистрирован: 2018.02.12, 22:41

Re: Как получить данные из select-option в ActiveField?

Сообщение svil »

empty и ничего конкретного
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Как получить данные из select-option в ActiveField?

Сообщение Loveorigami »

Post ты и не отправляешь. Где кнопка submit?
Аватара пользователя
svil
Сообщения: 563
Зарегистрирован: 2018.02.12, 22:41

Re: Как получить данные из select-option в ActiveField?

Сообщение svil »

Спасибо. Получилось и работает, когда submit добавила.
Вид:

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

<?php
$form = ActiveForm::begin(); ?>


    <?php     $items = \app\models\Country::find()
            ->select(['name'])
             ->where(['between', 'population', '200000000', '20000000000'])
            ->indexBy('name')
            ->column();
$params = [
    'prompt' => 'любой'
];
echo $form->field($country, 'name')->dropDownList($items, $params);
?>
<?= Html::submitButton('Отправить', ['class' => 'btn btn-success'])?>

<?php
ActiveForm::end();
?>
<?=$value ?>
<pre>
<?php print_r($qu) ?>

</pre>
Контроллер:

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

$qu = Yii::$app->request->post();
        $value = ArrayHelper::getValue($qu,'Country.name');
        if (!$value) $value="любой";
Как сделать тернарный оператор из :

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

 if (!$value) $value="любой";
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Как получить данные из select-option в ActiveField?

Сообщение andku83 »

он вам не нужен, предыдущую строку измените на:

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

        $value = ArrayHelper::getValue($qu,'Country.name', 'любой');
ну а вообще тернарка могла выглядеть:

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

    $value = $value ?: 'любой';
Аватара пользователя
svil
Сообщения: 563
Зарегистрирован: 2018.02.12, 22:41

Re: Как получить данные из select-option в ActiveField?

Сообщение svil »

круто
Ответить