Anonymous
Поисковая страница LARAVE
Сообщение
Anonymous » 24 апр 2025, 15:15
У меня есть лезвие Laravel для отображения информации, которая имеет две вкладки, текущие и предыдущие. Это также включает в себя функцию поиска. Моя проблема в том, что когда я ищу и применяю страницу, когда я нажимаю кнопку «Следующая», отображается необработанный HTML. Прямо сейчас я не уверен, чего мне не хватает. Новое страдание без поиска работает хорошо. Я использую поиск без страниц.
Код: Выделить всё
Pending Clients
Previous Clients
@include('client-list', [
'clients' => $clients,
'clientListKey' => 'current',
@include('client-list', [
'clients' => $clients,
'clientListKey' => 'previous',
])
$(document).ready(function () {
// Default active tab
let activeTab = 'current';
//add delay before searching
// Search input
$('#searchInput').on('input', function () {
let search = $(this).val();
let tab = $('#activeTab').val();
$.ajax({
url: '/schedule/search',
method: 'GET',
data: {
search: search,
tab: tab
},
success: function (response) {
$('#pendingClientList').html(response.currentHtml);
$('#previousClientList').html(response.previousHtml);
},
error: function (xhr) {
// Log any errors to the console
console.error('Error:', xhr.responseJSON.error);
}
});
});
});
document.addEventListener("DOMContentLoaded", function () {
// Tabs functionality in Schedule page
const tabs = document.querySelectorAll(".tab-btn");
const contents = document.querySelectorAll(".tab-content");
const toggleTab = (activeTab, activeContent) => {
tabs.forEach((tab) =>
tab.classList.remove("bg-gray-200", "dark:bg-gray-700")
);
contents.forEach((content) => content.classList.add("hidden"));
activeTab.classList.add("bg-gray-200", "dark:bg-gray-700");
activeContent.classList.remove("hidden");
};
tabs.forEach((tab) => {
tab.addEventListener("click", () => {
const target =
tab.id === "pendingTab" ? "pendingContent" : "previousContent";
toggleTab(tab, document.getElementById(target));
});
});
// Set active tab based on URL
const urlParams = new URLSearchParams(window.location.search);
const activeTabParam = urlParams.get("tab") || "current";
const tabMap = {
current: {
tabBtn: document.getElementById("pendingTab"),
tabContent: document.getElementById("pendingContent"),
},
previous: {
tabBtn: document.getElementById("previousTab"),
tabContent: document.getElementById("previousContent"),
},
};
toggleTab(tabMap[activeTabParam].tabBtn, tabMap[activeTabParam].tabContent);
});
client-list.blade.php
Код: Выделить всё
@if (method_exists($clients[$clientListKey], 'links'))
{{ $clients[$clientListKey]
->appends(request()->except("{$clientListKey}_page"))
->appends([
"{$clientListKey}_page" => $clients[$clientListKey]->currentPage(),
'tab' => $clientListKey,
])
->links('pagination::tailwind') }}
@endif
< /code>
Это контроллер, который у меня есть, обратите внимание, что индекс - моя начальная функция для отображения списка клиентов по умолчанию. Это не имеет проблем с страницей. < /P>
public function index()
{
$query = Clients::where('client_id', Auth::id());
$schednow = Carbon::now('Asia/Manila');
$currentClients = (clone $query)
->where('schedule', '>=', $schednow)
->orderBy('schedule', 'asc')
->paginate(1, ['*'], 'currentPage');
$pastClients = (clone $query)
->where('schedule', '=', $now)
// ->paginate(1, ['*'], 'current_page'),
->get(),
'previous' => Clients::where('client_id', Auth::id())
->when($searchTerm, function ($query, $searchTerm) {
$query->where('name', 'like', '%' . $searchTerm . '%');
})
->where('schedule', '
Подробнее здесь: [url]https://stackoverflow.com/questions/79587692/laravel-search-pagination-displaying-raw-html[/url]
1745496903
Anonymous
У меня есть лезвие Laravel для отображения информации, которая имеет две вкладки, текущие и предыдущие. Это также включает в себя функцию поиска. Моя проблема в том, что когда я ищу и применяю страницу, когда я нажимаю кнопку «Следующая», отображается необработанный HTML. Прямо сейчас я не уверен, чего мне не хватает. Новое страдание без поиска работает хорошо. Я использую поиск без страниц.[code] Pending Clients Previous Clients @include('client-list', [ 'clients' => $clients, 'clientListKey' => 'current', @include('client-list', [ 'clients' => $clients, 'clientListKey' => 'previous', ]) $(document).ready(function () { // Default active tab let activeTab = 'current'; //add delay before searching // Search input $('#searchInput').on('input', function () { let search = $(this).val(); let tab = $('#activeTab').val(); $.ajax({ url: '/schedule/search', method: 'GET', data: { search: search, tab: tab }, success: function (response) { $('#pendingClientList').html(response.currentHtml); $('#previousClientList').html(response.previousHtml); }, error: function (xhr) { // Log any errors to the console console.error('Error:', xhr.responseJSON.error); } }); }); }); document.addEventListener("DOMContentLoaded", function () { // Tabs functionality in Schedule page const tabs = document.querySelectorAll(".tab-btn"); const contents = document.querySelectorAll(".tab-content"); const toggleTab = (activeTab, activeContent) => { tabs.forEach((tab) => tab.classList.remove("bg-gray-200", "dark:bg-gray-700") ); contents.forEach((content) => content.classList.add("hidden")); activeTab.classList.add("bg-gray-200", "dark:bg-gray-700"); activeContent.classList.remove("hidden"); }; tabs.forEach((tab) => { tab.addEventListener("click", () => { const target = tab.id === "pendingTab" ? "pendingContent" : "previousContent"; toggleTab(tab, document.getElementById(target)); }); }); // Set active tab based on URL const urlParams = new URLSearchParams(window.location.search); const activeTabParam = urlParams.get("tab") || "current"; const tabMap = { current: { tabBtn: document.getElementById("pendingTab"), tabContent: document.getElementById("pendingContent"), }, previous: { tabBtn: document.getElementById("previousTab"), tabContent: document.getElementById("previousContent"), }, }; toggleTab(tabMap[activeTabParam].tabBtn, tabMap[activeTabParam].tabContent); }); [/code] [b] client-list.blade.php[/b] [code]@if (method_exists($clients[$clientListKey], 'links')) {{ $clients[$clientListKey] ->appends(request()->except("{$clientListKey}_page")) ->appends([ "{$clientListKey}_page" => $clients[$clientListKey]->currentPage(), 'tab' => $clientListKey, ]) ->links('pagination::tailwind') }} @endif < /code> Это контроллер, который у меня есть, обратите внимание, что индекс - моя начальная функция для отображения списка клиентов по умолчанию. Это не имеет проблем с страницей. < /P> public function index() { $query = Clients::where('client_id', Auth::id()); $schednow = Carbon::now('Asia/Manila'); $currentClients = (clone $query) ->where('schedule', '>=', $schednow) ->orderBy('schedule', 'asc') ->paginate(1, ['*'], 'currentPage'); $pastClients = (clone $query) ->where('schedule', '=', $now) // ->paginate(1, ['*'], 'current_page'), ->get(), 'previous' => Clients::where('client_id', Auth::id()) ->when($searchTerm, function ($query, $searchTerm) { $query->where('name', 'like', '%' . $searchTerm . '%'); }) ->where('schedule', ' Подробнее здесь: [url]https://stackoverflow.com/questions/79587692/laravel-search-pagination-displaying-raw-html[/url]