Дисциплины - Проектирование динамических страниц

Решение типовых задач - Выпадающий список с категориями на AplineJS и запросом на сервер для получения подкатегорий

1.Select для родительской котегории и пустой элемент с id=sub_catalog_empty, куда будет вставлен select подкатегории на событие change родительской категории.
<select name="catalog" class="w-full">
 <option value="0">Выберите каталог</option>
  @foreach(App\Models\CatalogBook::whereNull('parent_id')->get() as $catalog)
   <option value="{{$catalog->id}}">{{$catalog->name}}</option>
  @endforeach
</select>
<div class="p-2">
 <div id="sub_catalog_empty"></div>
</div>

2.делаем маршрут для получения подкатегорий
Route::get('catalog/{catalog}/subcatalogs', [Controllers\CatalogController::class, 'subcatalogs']);

3. экшн subcatalogs
public function subcatalogs($catalog_book)
{
  $subcatalogs = CatalogBook::where('parent_id', $catalog_book)->get();
  return view('helpers.subcatalog', compact('subcatalogs'));
}

4. view helpers/subcatalog.blade

<select name="subcatalog" class="w-full">
    @foreach($subcatalogs as $subcatalog)
        <option value="{{$subcatalog->id}}">{{$subcatalog->name}}</option>
    @endforeach
</select>

5. Возвращаемся к Select-у родительской категории, и добавляем прослушиваетль @change
<select name="catalog" class="w-full" @change="
  const subCatalog = document.getElementById('sub_catalog_empty');
  const cat = $event.target.value;
  const response = await fetch('/catalog/'+cat+'/subcatalogs')
                            .then((response) => response.text())
                            .then((text) => {
                              subCatalog.innerHTML = text;
                            });
">
  @foreach(App\Models\CatalogBook::whereNull('parent_id')->get() as $catalog)
   <option value="{{$catalog->id}}">{{$catalog->name}}</option>
  @endforeach
</select> 

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
00421-00422 ИИТ БГУИР
00423 ИИТ БГУИР
10421-10422 ИИТ БГУИР
10423 БГУИР
20421 БГУИР
30421 БГУИР
30423 БГУИР


Изображения Видео

1. JavaScript. Функциональное программирование. Лекция 2. Преобразование данных <iframe width="560" height="315" src="https://www.youtube.com/embed/EBKzRg4aTro" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
2. JavaScript. Функциональное программирование. Лекция 2 (продолжение) <iframe width="560" height="315" src="https://www.youtube.com/embed/phyt4PFk6Pc" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
3. HTML5 http://erud.by/files/books/HTML5.docx
4. ООП в JavaScript http://erud.by/object_orient_program/586
5. Фоновое видео jQuery http://johnpolacek.github.io/BigVideo.js
Учебная программа