Страница 1 из 2

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

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

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

Добавлено: 2019.12.13, 22:30
yiiliveext
Код в студию.

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

Добавлено: 2019.12.13, 22:34
mika_di
Код чего? JS или формы?

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

Добавлено: 2019.12.13, 22:42
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>

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

Добавлено: 2019.12.13, 23:17
yiiliveext
Проверил, нормально все аджаксом добавляется и отправляется.
Скопируйте с основной страницы и отправьте их вместо отрисованных данных в экшине getMoreBrand

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

Добавлено: 2019.12.13, 23:19
mika_di
Я так и сделал, то есть взял образец со страницы на основании его генерирую. и не работает. я собственно по этом и привел пример htm того что yii делает, а что приходит отрисованное из getMoreBrand

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

Добавлено: 2019.12.13, 23:24
mika_di
я больше скажу, просто прям из браузера скопировал кусок html кода с полем который отрисован с помощью activeForm вставил рядом отправил форму вставленное поле не отправилось, как будто его нет. Может валидация какая-то есть?

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

Добавлено: 2019.12.13, 23:35
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;

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

Добавлено: 2019.12.13, 23:42
mika_di
вот такую строчку вернул из GetMoreBrand

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

return $str = '<label class="ctst"><input type="checkbox" name="Links[brand][]" value="test"> test</label>';
не работает

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

Добавлено: 2019.12.14, 00:04
yiiliveext
$_POST покажите при выбранных добавленных полях

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

Добавлено: 2019.12.14, 00:07
yiiliveext
mika_di писал(а):
2019.12.13, 23:24
я больше скажу, просто прям из браузера скопировал кусок html кода с полем который отрисован с помощью activeForm вставил рядом отправил форму вставленное поле не отправилось, как будто его нет. Может валидация какая-то есть?
Оно было выбрано? Отправляются же только выбранные поля.
Если есть возможность выложить тестовую страницу в интернет, то так будет быстрее.

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

Добавлено: 2019.12.14, 00:08
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] => 
        )

)

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

Добавлено: 2019.12.14, 00:11
yiiliveext
Вы форму гетом отправляете?

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

Добавлено: 2019.12.14, 00:14
mika_di
Если есть возможность выложить тестовую страницу в интернет, то так будет быстрее.
конечно
https://d.sborka-modeli.com/
нас интересует раздел "Производители" и кнопка показать еще

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

Добавлено: 2019.12.14, 00:15
mika_di
yiiliveext писал(а):
2019.12.14, 00:11
Вы форму гетом отправляете?
да

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

Добавлено: 2019.12.14, 01:07
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(); ?>
И попробуйте клонировать в браузере и отмечать элемент.

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

Добавлено: 2019.12.14, 01:13
yiiliveext
Если не будет передавать склонированный, то запустите на пустом лейауте с голым бутстрапом

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

Добавлено: 2019.12.14, 01:20
mika_di
Да, этот вариант работает как надо :/
https://d.sborka-modeli.com/site/test

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

Добавлено: 2019.12.14, 01:26
yiiliveext
Все, нашел причину, у вас в верстке ошибка, в итоге форма находится отдельно пустая, а инпуты отдельно, посмотрите в панели разработчика в браузере.

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

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