Ссылка на абзац на той же странице с Laravel
Вот у меня есть обычный div, который выводит катерии моей страницы, мне нужно чтобы при клике на категорию scrolling в определенную часть абзаца этой же страницы.
@php
$faq = \App\Services\AppService::getFaq();
@endphp
<div class="faq-left">
<p>{{__('Оглавление')}}</p>
@foreach($faq as $category => $items)
<span id="menu_scroll_tag" class="text-muted">
<ul>
<li><a href="#">{{$category}}</a></li>
</ul>
</span>
@endforeach
</div>
Категории выводятся уже с back-end, сделать типа
<span id="menu_scroll_tag" class="text-muted">
<ul>
<a id="prod" href="#">Продукты</a>
<a id="prod" href="#">Одежда</a>
<a id="prod" href="#">Одежда</a>
</ul>
</span>
мне не подходит, поскольку вывод уже производится с back-end. Как правильно сделать Ajax? Помогите разобраться. Спасибо
Мой controller
public static function getFaq(){
return Faq::all()->groupBy('category');
}
Ответы (1 шт):
Если твои абзацы которые ты хочешь привязать к категориям тоже выводятся в цикле из бэкенда, то ты можешь при выводе привязать идентификатор к id абзаца или какому-нибудь data-id. Можешь сделать так чтобы эти же id были и у оглавления, и тогда на js повесить на каждое оглавление событие которое проскроллит страницу к блоку абзаца с таким же айди как и у оглавления. Если тебе надо подгружать аяксом динамично абзац по клику на оглавление (прости я не совсем до конца понял вопрос) то также по клику отправляешь на сервер id который привязан к каждому оглавлению. Так:
<li><a href="#" id="{{$category->id}}">{{$category}}</a></li>
И в js аяксом отправляешь на сервер данную информацию -
let id = item.attr('id');
Сервер получает это, возвращает абзац. Делаешь там append какой-нибудь с этой информацией и всё. С js-ом не смогу помочь, извини( вопрос по laravel