Динамически заполняемый HTML-выбор, изменение выбранного визуального элемента. Шаблон лезвия Laravel

У меня есть этот код. Я работаю в шаблоне Blade от Laravel framework.

<select class="form-control" name="id_zupanije" id="id_zupanije" onchange="popuniGradove(this, document.getElementById('id_grada'))">

@foreach($zupanije as $zupanija)

    @if($zupanija->id == $idzupanije)

        <option value="{{$zupanija->id}}" selected="selected">{{$zupanija->naziv_zupanije}}</option>

    @else

        <option value="{{$zupanija->id}}" selected="">{{$zupanija->naziv_zupanije}}</option>

    @endif

@endforeach

<option value="0" selected="">--Odaberite--</option>

idzupanije is id of the select option that needs to be selected...

Функция javascript "popuniGradove" предназначена для создания параметров выбора для другого выбора.

Я хочу знать, как визуально обновить выбранный параметр, поэтому при загрузке окна я вижу созданный выбор и показывающий мне выбранный параметр, а не этот «--Odaberite--».

РЕДАКТИРОВАТЬ, вот скриншот того, как это выглядит. .imgur.com/LHzLB.png" alt="screenshoot1">

У меня есть 3 выбора.. сначала Зупания (англ. "провинция"), Град (англ. Город), Кварт (англ. кварт).. когда я выбираю зупанию, выберите град заполняется вариантами -> города, у которых есть иностранный ключ id_zupanija в таблице .. samo для kvart, после выбора города javascript создает параметры с правильными kvarts ... После того, как я нажимаю «Отправить» (bnt Filtriraj), я обновляю страницу и фильтрую результаты ниже ... но я хочу, чтобы мои выборки сохраняли их выбранные параметры перед отправкой.. они продолжают показывать --Odaberite-- (опция по умолчанию, последняя созданная) после отправки..

сс2


person Community    schedule 03.05.2016    source источник
comment
Вам нужно обновить другой выбор, когда вы выбираете вариант выбора с идентификатором id_zupanije?   -  person Jose Rojas    schedule 04.05.2016
comment
да, прочитайте мою правку в посте :)   -  person    schedule 04.05.2016


Ответы (2)


Если я вас правильно понимаю, вы можете рассмотреть возможность использования пакета, такого как старый laravel 4 FormBuilder.

напр. https://github.com/kristijanhusak/laravel-form-builder

Таким образом, вы можете привязать каждую форму к соответствующей модели следующим образом:

{!! Form::model($user, array('route' => array('user.update', $user->id))) !!}

Laravel автоматически проверяет наличие входных данных в кеше и прикрепляет эти данные к форме.

person Kristo    schedule 03.05.2016
comment
Я отредактировал вопрос. Надеюсь, теперь я объяснил это лучше :) - person ; 04.05.2016
comment
Вы отправляете с помощью JavaScript или классической http перезагрузки? - person Kristo; 04.05.2016
comment
отправить запрос. потому что есть еще 30 фильтров в расширенных фильтрах/больше фильтров .. - person ; 04.05.2016
comment
Попробуйте этот пакет. Он автоматически выведет выбор с предыдущим выбором. - person Kristo; 04.05.2016
comment
Я нигде не вижу в документации, что я могу добавлять функции javascript в атрибуты и HTML div, потому что мой блок предварительной фильтрации скрыт, пока я не нажму кнопку показать больше (vise opcija filtriranja .. - person ; 04.05.2016
comment
Вы можете добавить свойство данных к кнопке отправки, например <button type="submit" data-show-more="{{ ($previous_choice) ? true : false }}"></button>. Проверьте это значение в JavaScript и, если оно верно, отобразите кнопку «Показать больше». - person Kristo; 04.05.2016

Вы должны добавить 2 selectize, в этом примере у нас есть первый для штатов (например), а второй для городов (например). когда мы выбираем состояние, страница отправляет запрос ajax для получения городов в этом состоянии, затем мы устанавливаем список городов при выборе городов.

выбор состояния:

<select id="select-cities-state" class="selectized">
     <option value="1">State 1</option>
     ...
</select>

выбирают города:

<select id="select-cities-city" class="selectized" disabled="">
     <option value=""></option>
</select>
var xhr;
var select_state, $select_state;
var select_city, $select_city;

$select_state = $('#select-cities-state').selectize({
    onChange: function(value) {
        if (!value.length) return;
        select_city.disable();
        select_city.clearOptions();
        select_city.load(function(callback) {
            xhr && xhr.abort();
            xhr = $.ajax({
                url: 'https://jsonp.afeld.me/?url=http://api.sba.gov/geodata/primary_city_links_for_state_of/' + value + '.json',
                success: function(results) {
                    select_city.enable();
                    callback(results);
                },
                error: function() {
                    callback();
                }
            })
        });
    }
});

$select_city = $('#select-cities-city').selectize({
    valueField: 'name',
    labelField: 'name',
    searchField: ['name']
});

select_city  = $select_city[0].selectize;
select_state = $select_state[0].selectize;

select_city.disable();
person amine    schedule 01.10.2020