动态填充HTML选择,更改选定的视觉效果。 Blade Laravel模板

时间:2016-05-03 21:12:08

标签: javascript php html laravel blade

我有这个代码。我在Laravel框架中使用Blade模板。

<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是需要选择的选项的ID ...

javascript function&#34; popuniGradove&#34;用于为另一个选择创建选择选项。

我想知道的是如何直观更新所选的选项,所以当窗口加载时我看到创建了选择并显示我选择的选项,而不是这个选项 &#34; - Odaberite - &#34 ;.

EDIT 这是它的外观的大纲。 screenshoot1

我有3个选择..首先是Zupanija(eng。&#34;省&#34;),Grad(eng。城市),Kvart(eng。夸)...当我选择zupanija时,选择grad填充选项 - &gt;在表中有foregin key id_zupanija的城市..对于kvart的samo,在选择城市之后,javascript使用适当的kvarts创建选项 ...在我按下提交(bnt Filtriraj)后,我刷新页面并过滤下面的结果......但我希望我的选择在提交之前保存他们选择的选项..他们继续显示--Odaberite--(默认选项,最后一个)创建)提交..

ss2

2 个答案:

答案 0 :(得分:0)

如果我理解你,你可以考虑使用像旧laravel 4 FormBuilder这样的包。

电子。 G。 https://github.com/kristijanhusak/laravel-form-builder

这样你可以将每个表单绑定到相应的模型,如下所示:

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

Laravel会自动检查缓存中是否存在输入,并将该数据附加到表单。

答案 1 :(得分:0)

您必须添加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();