Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение mika_di »

Здравствуйте, столкнулся вот с какой проблемой, использую на странице форму activeform а в ней checkboxlist но чекбоксов слишком много, по этому сделал кнопку показать еще, и подгружаю дополнительные чекбоксы аяксом и просто вставляю их в конец списка. В итоге после отпавки форму, подгруженые чекбоксы не отправляются как будто их вообще нет. Почему так и что делать?
отправка get(ом)
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение mika_di »

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

$('.brands').click(function () {
    var name = $("#links-brand").find('input').last().val()
    $.ajax({
        url: '/site/get-more-brand',
        method:'post',
        data:{Brands:{name:name}},
        success: function(reponse){
            $(reponse).insertAfter($(".ctst").last());

        }
    });
})
а вот к такому полю это дописывается

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

            <?php $brands = \yii\helpers\ArrayHelper::map( Brands::find()->limit(10)->asArray()->All(), 'market_name', 'market_name')?>
            <?= $form->field($model, 'brand')->checkboxList($brands,['itemOptions' => ['labelOptions' => ['class' => 'ctst']]])->label(false) ?>
в итоге то, что сделано фреймворком отправляется нормально, а то что дорисовано js нет(((

пример того как выглядит html

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

//фрейворк
<label class="ctst">
	<input type="checkbox" name="Links[brand][]" value="A&amp;A models"> A models
</label>
// а это из js
<label class="ctst">
	<input type="checkbox" name="Links[brand][]" value="Alex miniatures">Alex miniatures
</label>
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение yiiliveext »

Проверил, нормально все аджаксом добавляется и отправляется.
Скопируйте с основной страницы и отправьте их вместо отрисованных данных в экшине getMoreBrand
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение mika_di »

Я так и сделал, то есть взял образец со страницы на основании его генерирую. и не работает. я собственно по этом и привел пример htm того что yii делает, а что приходит отрисованное из getMoreBrand
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение mika_di »

я больше скажу, просто прям из браузера скопировал кусок html кода с полем который отрисован с помощью activeForm вставил рядом отправил форму вставленное поле не отправилось, как будто его нет. Может валидация какая-то есть?
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение mika_di »

Может как-то не так отрисовываю

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

                Yii::$app->response->format = Response::FORMAT_HTML;
                $str = '';
                foreach ($brands as $brand){
                    $str .='<label class="ctst">';
                    $str .='<input type="checkbox" name="Links[brand][]" value="'.$brand['market_name'].'">'.$brand['market_name'];
                    $str .='</label>';
                }
                return $str;
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение mika_di »

вот такую строчку вернул из GetMoreBrand

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

return $str = '<label class="ctst"><input type="checkbox" name="Links[brand][]" value="test"> test</label>';
не работает
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение yiiliveext »

$_POST покажите при выбранных добавленных полях
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение yiiliveext »

mika_di писал(а): 2019.12.13, 23:24 я больше скажу, просто прям из браузера скопировал кусок html кода с полем который отрисован с помощью activeForm вставил рядом отправил форму вставленное поле не отправилось, как будто его нет. Может валидация какая-то есть?
Оно было выбрано? Отправляются же только выбранные поля.
Если есть возможность выложить тестовую страницу в интернет, то так будет быстрее.
Последний раз редактировалось yiiliveext 2019.12.14, 00:08, всего редактировалось 1 раз.
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение mika_di »

такой $_GET если выбираю то что отрисовалось при загрузке страницы

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

Array
(
    [Links] => Array
        (
            [title] => 
            [market_name] => 
            [price_second] => 
            [search_brand] => 
            [brand] => Array
                (
                    [0] => A&A models
                    [1] => ABER
                    [2] => Abordage
                )

        )

)
А вот это после того как тыпаюсь отправить форму выбрав чекбоксы которые подгрузильсь аяксом

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

Array
(
    [Links] => Array
        (
            [title] => 
            [market_name] => 
            [price_second] => 
            [search_brand] => 
            [brand] => 
        )

)
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение mika_di »

Если есть возможность выложить тестовую страницу в интернет, то так будет быстрее.
конечно
https://d.sborka-modeli.com/
нас интересует раздел "Производители" и кнопка показать еще
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение mika_di »

yiiliveext писал(а): 2019.12.14, 00:11 Вы форму гетом отправляете?
да
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение yiiliveext »

Попробуйте вывести этот листбокс на чистой странице с пустыми параметрами формы.
Не вижу почему так происходит.
Или вот такую форму например

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

 <?php $form = ActiveForm::begin(['id' => 'form', 'method' => 'GET']); ?>
                <?= $form->field($model, 'planets')->checkboxList(
                    ['Merk' => 'Меркурий', 'Ven' => 'Венера', 'Zem' => 'Земля', 'Mars' => 'Марс', 'Up' => 'Юпитер',]
                )->label('Какие планеты по вашему мнению обитаемы?') ?>

                <div class="form-group">
                    <?= Html::submitButton('Submit', ['class' => 'btn btn-primary', 'name' => 'login-button', 'onclick' => 'disableValidation = true']) ?>
                </div>
                <?php ActiveForm::end(); ?>
И попробуйте клонировать в браузере и отмечать элемент.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение yiiliveext »

Если не будет передавать склонированный, то запустите на пустом лейауте с голым бутстрапом
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение yiiliveext »

Все, нашел причину, у вас в верстке ошибка, в итоге форма находится отдельно пустая, а инпуты отдельно, посмотрите в панели разработчика в браузере.
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: Генерирую чекбоксы js в при отправки даныне из этих чекбоксов не приходят в контроллер

Сообщение mika_di »

А вот дальше магия. Я взял ваш вариант чекбокслиста который заработал на тестовой вьюшке. и вставил в основную вьюшку, скопировал выделенный чекбокс и не работает(((
Ответить