@unclenoice
Учусь

Фреймворк Yii2. Можно ли в ActiveForm value задать с помощью div?

Уважемые господа программисты, пишу вам с таким вопросом
Можно ли в форме ActiveForm field->textInput в Value указать значение ?
Дело вот в чем: Я подключил JavaScript Yandex Api карты и геокодер, написал простенький код по документалке чтобы пользователь мог выбрать на карте определенный дом или улицу, и мне теперь требуется как то эти данные из JS вытащить и поместить в форму на отправку
Вот код скрипта запускающий ЯндексКарты
<script type="text/javascript">
    ymaps.ready(init);

    function init() {
        var myPlacemark,
            myMap = new ymaps.Map('map', {
                center: [55.753994, 37.622093],
                zoom: 9
            }, {
                searchControlProvider: 'yandex#search'
            });

        myMap.events.add('click', function (e) {
            var coords = e.get('coords');

            if (myPlacemark) {
                myPlacemark.geometry.setCoordinates(coords);
            }
            else {
                myPlacemark = createPlacemark(coords);
                myMap.geoObjects.add(myPlacemark);
                myPlacemark.events.add('dragend', function () {
                    getAddress(myPlacemark.geometry.getCoordinates());
                });
            }
            getAddress(coords);
        });

        function createPlacemark(coords) {
            return new ymaps.Placemark(coords, {
                iconCaption: 'поиск...'
            }, {
                preset: 'islands#violetDotIconWithCaption',
                draggable: true
            });
        }

        function getAddress(coords) {
            myPlacemark.properties.set('iconCaption', 'поиск...');
            ymaps.geocode(coords).then(function (res) {
                var firstGeoObject = res.geoObjects.get(0);

                myPlacemark.properties
                    .set({
                        iconCaption: [
                            firstGeoObject.getLocalities().length ? firstGeoObject.getLocalities() : firstGeoObject.getAdministrativeAreas(),
                            firstGeoObject.getThoroughfare() || firstGeoObject.getPremise()
                        ].filter(Boolean).join(', '),
                        balloonContent: firstGeoObject.getAddressLine()
                    });
                var adress = firstGeoObject.getAddressLine();
                document.getElementById("adress").innerHTML = adress;
            });
        }
    }
</script>

Var adress - это переменная с адресом , выбранная пользователем.
с помощью document.getElementById("adress").innerHTML = adress я передаю значения adress в одноимменный блое
Вот поэтому и появился такой вопрос: есть ли какой нибудь способ поместить в value
Если вы знаете способ как вытащить переменную из JS и поместить ее в ActiveForm сообщите пожалуйста.
  • Вопрос задан
  • 40 просмотров
Решения вопроса 1
1. Присваиваете класс нужному инпуту
$form->field($model, 'address')->textInput(['class' => 'address'])

2. Помещаете данные
$('.address').val(address);
Это с помощью jquery, если на чистом JS, то можно присвоить так же id и по нему работать
let address = document.getElementById('address');
address.value = 'my address';
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы