[Laravel 5.1 + ajax] Popolare select concatenate Regioni, Province, Comuni

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
Ciao a tutti,

mi sono piantato su un problema piuttosto ostico con Laravel 5. In un form ho 3 select box che devono essere popolate in modo concatenato. Ora, singolarmente non ho alcun problema a fare il popolamento, ma il problema è la concatenzazione vera e propria che deve essere fatta con ajax richiamando le funzioni correte dalle route.

FIn'ora ho preparato questo codice:

PHP:
#view

<div class="row form-group">
                                        <div class="col-md-6">
                                            <label for="Regione">Regione</label>
                                            <select name="regions" class="form-control" id="regions">
                                                <option value="0" selected>Seleziona una Regione</option>

                                            @foreach($regions as $region)
                                                    <option value="{{$region->id}}">{{$region->nome_regione}}</option>
                                                @endforeach
                                            </select>
                                        </div>
                                        <div class="col-md-6">
                                            <label for="Provincia">Provincia</label>
                                            <select name="provinces" class="form-control" id="provinces">
                                                <option value="" selected>Seleziona la provincia</option>
                                            </select>
                                        </div>
                                    </div>


#ajax

<script type="application/javascript">
        jQuery(document).ready(function($)
        {

            $('#regions').change(function()
            {
                $.get("{{ url('Province2Region')}}",
                        { option: $(this).val() },
                        function(data) {
                            var province = $('#province');
                            province.empty();

                            $.each(data, function(index, element)
                            {
                                province.append("<option value='"+ element.id +"'>" + element.name + "</option>");
                            });
                        });
            });

            $('#provinces').change(function()
            {
                $.get("{{ url('dropdown')}}",
                        { option: $(this).val() },
                        function(data) {
                            var municipalities = $('#municipalities');
                            municipalities.empty();

                            $.each(data, function(index, element) {
                                municipalities.append("<option value='"+ element.id +"'>" + element.name + "</option>");
                            });
                        });
            });
        });
    </script>

questo è quanto ho scritto nelle route

PHP:
Route::get('Province2Region', function(){
    $input = Input::get('option');
    $region = Region::find($input);
    $province = $region->province();
    return Response::eloquent($province->get(['id','nome_provincia']));
});

Route::get('Municipality2Province', function(){
    $input = Input::get('option');
    $region = Region::find($input);
    $province = $region->province();
    return Response::eloquent($province->get(['id','nome_provincia']));
});

ma non c'è verso di concatenare ste benedette select. Qualcuno mi sa indicare dove stò sbagliando?

Grazie
 

Discussioni simili