Sto cercando di ottenere dropdown dinamici lavorando con Laravel e Select2. Ci sono due drop down; uno per le aziende, ad esempio "company2" e uno per le sedi che appartengono a tale società, ad esempio "location2".Elenchi a discesa dinamici utilizzando select2, json request e Laravel
Per la vita di me, non riesco a capire come far scoppiare la "company2" a un evento per leggere le sedi delle aziende, se è cambiato! Cosa sto facendo male nella sezione javascript di questo codice! (tutto il resto funziona)
rotta
Route::controller('api', 'ApiController');
Controller (ApiController) uscita
public function getLocations($companyId)
{
return Location::where('company_id', $companyId)->lists('id', 'name');
}
Esempio dall'indirizzo "api/luoghi/7"
{"Yellowstone":"8"}
View (forma aperta/close section omitted)
{!! Form::select('company_id', $companies, null, ['class' => 'company2 form-control']) !!}
{!! Form::select('location_id', $locations, null, ['class' => 'location2 form-control']) !!}
View (Javascript)
<script type="text/javascript">
$(document).ready(function() {
$(".company2").select2();
$(".location2").select2();
});
$(".company2").select2().on('change', function() {
var $company2 = $('.company2');
$.ajax({
url:"../api/locations/" + $company2.val(),
type:'GET',
success:function(data) {
var $location2 = $(".location2");
$location2.empty();
$.each(data, function(value, key) {
$location2.append($("<option></option>").attr("value", value).text(key));
});
$location2.select2();
}
});
}).trigger('change');
</script>
La vista è passato un elenco di aziende attive se inizializzato cioè
$companies = Company::lists('trading_name', 'id');
I' Non ho usato select2 prima ma ho codificato questo violino dopo averlo fatto una rapida occhiata ai documenti e ha un esempio di come attivare una funzione su un evento di cambiamento. http://jsfiddle.net/oy14tdus/ - ti aiuta? Non sono sicuro se hai bisogno di spostare il tuo '$ ('. Company2'). Select2(). On ('change'' ... event/listener nella funzione di pronto documento - forse dargli un colpo – haakym
scusa se Hai frainteso, stai avendo problemi a far scoppiare l'evento o stai avendo problemi su come aggiornare i valori del dropdown della posizione quando il dropdown della società è stato modificato? Inoltre, non sembra che tu stia passando il tuo evento ajax a funzione di successo, devi fare qualcosa con i dati che stai ricevendo - è questo che ti manca? – haakym
@haakym scusa, sì, l'evento di cambiamento sta funzionando bene, ho bisogno di sapere come passare i dati dal percorso a il dropdown "location2" –