ActiveForm метод get

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Антон
Сообщения: 199
Зарегистрирован: 2013.08.29, 05:27
Откуда: Харьков

ActiveForm метод get

Сообщение Антон »

Странно но почему-то запрос дублирует параметры при запросе

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

<?php ActiveForm::begin(['method' => 'get']); ?> 
<?=Html::textInput('price',$price,)?>
    <div class="form-group">
        <?= Html::submitButton('Найти') ?>
    </div>
<?php ActiveForm::end(); 
то есть после каждого нажатия добавляется переменная,а должна заменяться

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

localhost/ot/catalog?price=20&price=30&price=20&price=15
после 4х нажатий
Антон
Сообщения: 199
Зарегистрирован: 2013.08.29, 05:27
Откуда: Харьков

Re: ActiveForm метод get

Сообщение Антон »

В фаербаге появляется тот же параметр но с аттрибутом hidden

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

<input type="hidden" value="" name="price">
<input type="hidden" value="720" name="price">
<input type="hidden" value="2500" name="price">
<input type="hidden" value="1400" name="price">
<input type="hidden" value="700" name="price">
<input type="text" value="300" name="price">
astronin
Сообщения: 606
Зарегистрирован: 2012.01.30, 17:46

Re: ActiveForm метод get

Сообщение astronin »

а почему value везде разный? и что это за input-ы?
какая у вас база?Mysql или mongoDB?
Антон
Сообщения: 199
Зарегистрирован: 2013.08.29, 05:27
Откуда: Харьков

Re: ActiveForm метод get

Сообщение Антон »

astronin писал(а):а почему value везде разный? и что это за input-ы?
какая у вас база?Mysql или mongoDB?
Mysql
Я для поиска вводил разные данные, и нажимал кнопку найти. И с каждым поиском их прибавлялось.
Антон
Сообщения: 199
Зарегистрирован: 2013.08.29, 05:27
Откуда: Харьков

Re: ActiveForm метод get

Сообщение Антон »

Инпут один, но после каждого запроса они увиличивались.
astronin
Сообщения: 606
Зарегистрирован: 2012.01.30, 17:46

Re: ActiveForm метод get

Сообщение astronin »

еще, не совсем понятно, откуда беруться лишние input-ы, если у вас в коде прописан только один <?=Html::textInput('price',$price,)?> ? может у вас там немного другой код стоит?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: ActiveForm метод get

Сообщение zelenin »

astronin писал(а):еще, не совсем понятно, откуда беруться лишние input-ы, если у вас в коде прописан только один <?=Html::textInput('price',$price,)?> ? может у вас там немного другой код стоит?
потому что при get зачем-то создаются hiddenInputs. Подтверждаю, но разбираться в природе не хочется.
S1lver
Сообщения: 56
Зарегистрирован: 2014.06.03, 10:38

Re: ActiveForm метод get

Сообщение S1lver »

Почитал эту ветку, но так и не понял что значит настроить самостоятельно 'action'?

У меня аналогичная ситуация, конечный URL получается монструозным
list?contractorId=6&contractorId=14&contractorId=4
Не могу сказать, что это не работает. Работает правильно, берет последнее значение. Но куча параметров в строке запроса как-то не очень хорошо.

Подскажите как, правильно, это решается?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: ActiveForm метод get

Сообщение ElisDN »

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

<?php ActiveForm::begin(['action' => [''], 'method' => 'get']); ?>
sanchez812
Сообщения: 2
Зарегистрирован: 2020.01.27, 09:24

Re: ActiveForm метод get

Сообщение sanchez812 »

Может быть, костыль, но это помогает:

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

$('input[type="hidden"][name="price"]').remove();
aksela
Сообщения: 1
Зарегистрирован: 2023.03.27, 00:14

Re: ActiveForm метод get

Сообщение aksela »

Такая ситуация возникает, когда не установлен action

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

 <?php $form = ActiveForm::begin([
        'action' => \yii\helpers\Url::to(['site/index']),
        'method' => 'GET',
 ]); ?>
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: ActiveForm метод get

Сообщение ElisDN »

aksela писал(а): 2023.03.27, 00:17 Такая ситуация возникает, когда не установлен action
Можно без Url::to:

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

 <?php $form = ActiveForm::begin([
        'action' => ['site/index'],
        'method' => 'GET',
]); ?>
Ответить