Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: CommunityОтветов: 2

У меня есть этот код. Я работаю в шаблоне 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а>

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

javascriptphphtmllaravelblade

Ответы

Ответ 1 · Kristo

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

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

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

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

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

Ответ 2 · amine

Вы должны добавить 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();

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы