🔥 کمپین سال عزتتا پایان اردیبهشت ادامه دارد (در این روزهای سخت در کنار شما هستیم)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علی منظور
استفاده از blade در درخواست‌های Ajax
علی منظور حل شده توسط علی منظور

نمونه متد:

public function getFilesForModal(Request $request)
    {
        $files = File::latest()
            ->when($request->type, function ($query, $type) {
                $query->where('mime_type', 'like', $type . '/%');
            })
            ->when($request->search, function ($query, $search) {
                $query->where('original_name', 'like', "%{$search}%");
            })
            ->paginate(12);
        return view('admin.files.partials.modal-grid', compact('files'))->render();
	}

نمونه درخواست ایجکس به این متد:

    /**
     * Load files via AJAX
     */
	function loadModalFiles(url, containerId) {
        const searchValue = $('#modal-search').val();
        const typeValue = $('#modal-type-filter').val();
        const acceptTypes = currentModal.data('accept-types');
        $.ajax({
            url: url,
            method: 'GET',
            data: {
                _token: $('meta[name="csrf-token"]').attr('content'),
                search: searchValue,
                type: typeValue || acceptTypes,
            },
            success: function (response) {
                $(`#${containerId}`).html(response);
                initializePagination(containerId);
            },
            error: function (xhr) {
                console.error('Error loading files:', xhr);
                $(`#${containerId}`).html(`
                    <div class="alert alert-danger">
                        خطا در بارگذاری فایل‌ها. لطفاً دوباره تلاش کنید.
                    </div>
                `);
                toastr.error('خطا در بارگذاری فایل‌ها');
            }
        });
    }

نحوه استفاده:

	// Load files when modal opens
    $(document).on('show.bs.modal', '[id$="Modal"]', function (e) {
        currentModal = $(this);
        const modalId = currentModal.attr('id');
        const containerId = `modal-files-container-${modalId}`;
        loadModalFiles(`/admin/files/modal`, containerId);
    });

این کد مرتبط با جلسه پیاده سازی صفحه آرشیو مطالب همراه با scroll loading است.

بهترین پاسخ
علی منظور ۱۵ اردیبهشت ۱۴۰۵، ۱۹:۰۴