Tôi đang cố gắng để có được thả xuống động làm việc với Laravel và Select2. Có hai sự sụt giảm; một cho các công ty tức là "company2" và một cho các vị trí thuộc về công ty đó, tức là "location2".Trình đơn thả xuống động bằng cách sử dụng select2, yêu cầu json và Laravel
Đối với cuộc sống của tôi, tôi không thể tìm ra cách làm cho "company2" thả xuống một sự kiện để đọc các vị trí công ty đó, nếu nó được thay đổi! Tôi đang làm gì sai trong phần javascript của mã này! (Công trình mọi thứ khác)
Route
Route::controller('api', 'ApiController');
Controller (ApiController) đầu ra
public function getLocations($companyId)
{
return Location::where('company_id', $companyId)->lists('id', 'name');
}
Ví dụ từ địa chỉ "api/địa điểm/7"
{"Yellowstone":"8"}
View (hình thức mở/phần đóng bị bỏ qua)
{!! 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>
Quan điểm được thông qua một danh sách các công ty hoạt động khi khởi nghĩa
$companies = Company::lists('trading_name', 'id');
tôi đã không được sử dụng select2 trước nhưng mã hóa này fiddle lên sau khi có xem nhanh tài liệu và có ví dụ về cách kích hoạt hàm trên sự kiện thay đổi. http://jsfiddle.net/oy14tdus/ - điều đó có giúp ích gì không? Tôi không chắc liệu bạn có cần phải di chuyển '$ ('. Company2') của bạn. Select2(). On ('change'' ... event/listener vào chức năng sẵn sàng của tài liệu - có thể cho nó một shot – haakym
xin lỗi nếu tôi Tôi đã hiểu sai, bạn có gặp sự cố khi nhận sự kiện để kích hoạt hoặc bạn gặp sự cố về cách cập nhật giá trị của trình đơn thả xuống vị trí khi công ty thả xuống đã được thay đổi? Ngoài ra, bạn dường như không chuyển sự kiện ajax của mình chức năng thành công, bạn cần phải làm điều gì đó với dữ liệu bạn đang nhận được - đây có phải là những gì bạn đang thiếu không? – haakym
@haakym xin lỗi, có sự kiện thay đổi đang diễn ra tốt đẹp, tôi cần biết cách chuyển dữ liệu từ tuyến đường đến thả xuống "location2" –