Я работаю над созданием выпадающих выпусков для записей n-уровня в Laravel 5. В настоящее время я работал с этим кодом, но я получаю сообщение об ошибке с дочерними категориями.
Честно говоря, я не знаю, как получить значения из дочерних категорий, и я считаю, что это является основным источником проблемы.Но я не знаю, как ее решить
CONSOLE.LOG ДИСПЛЕИ
TypeError: children - это не функция [Узнать больше]
Это мойдБ и код:
БД: СТРУКТУРА
Функция сущности:
public function getAjaxGetCategoriesDropdown() {
$categories = DB::table('categories')
->where('is_active', 1)
->orderBy('path', 'asc')
->select('categoryName','level','id','parentId')
->get();
$first = array();
$children = array();
foreach ($categories as $cats) {
if ($cats->level == 2) {
$first[$cats->id] = $cats;
} else if ($cats->parentId) {
$children[$cats->parentId][] = $cats;
}
}
return array('first' => $first, 'children' => $children);
}
СЦЕНАРИЙ:
<script type="text/javascript">
var children = @json($cats['children'])
function showCat(obj, level) {
var catId = obj.value;
level += 1;
if ($('cat_container_' + level)) {
$('cat_container_' + level).remove();}
var options = children(catId);
var html = '<select id="cat_' + catId + '" onchange="showCat(this, ' + level + ')">' + '<option value="">Select a SubCategory</option>';
for (var i = 0; i < options.length; i++) {
html += '<option value="' + options[i].id + '">' + options[i].categoryName + '</option>';}
html += '</select>' + '<i class="arrow double"></i>';
html = '<label class="field select ' + 'cat_container_' + level + '">' + html + '</label>';
$('sub_cat').insert(html);
}
ПРОСМОТР ЛЕЗВИЯ:
<select id="first_cat" class="required-entry validate-select" onchange="showCat(this, 2)">
<option value=""> Select a Category </option>
@foreach($cats['first'] as $cat): <option value="{{ $cat->id }}">{{ $cat->categoryName }}</option> @endforeach
</select>
<div id="sub_cat"></div>
любая помощь приветствуется!.