اذهب إلى المحتوى

السؤال

نشر (معدل)

السلام عليكم يعطيكم العافيه 

قمت بمشاركه ملف الانشاء والتعديل وملف الدوال الخاصه بالاجاكس وملف يوضح المسارات المستخدمه 
انا متاكد 100 بالمئه من عمل الاجاكس والجي كويري بشكل قلوبل 

المشكله عند الضغط على حقل سلكت والبحث لا يظهر اي نتايج كما ان طلب الاجاكس لا يتم اثناء البحث من خلال التاكد من ادوات المطور في قوقل كروم 

اريد مساعدتكم في تحليل الكود واكتشاف المشكله ولماذا حقل السلكت لا يعمل معي بالشكل المتوقع

وقمت بالاختبار باستخدام الرابط مباشره 
قمت بزياره الرابط : @http://app.test/ajax/housing-units?id=1

وكانت هذه النتيجه :
{"results":[{"id":1,"text":"\u0627\u0644\u0631\u064a\u0627\u0636 - 01"}]}

select 2.zip

تم التعديل في بواسطة Abdulrahman Dev

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

هل توجد أى مشكلة تظهر في ال console لديك ؟ إذا كانت تظهر لك أى مشكلة يرجى إرفاقها هنا .

من الممكن أن المشكلة لديك في ملف AjaxController.php سطر 20 حيث يبدوا أنه يتم إرسال id فارغ تلقائيا من خلال مكتبة select2 لهذا يرجى إستبدال سطر 20 بالتالي :

if ($request->filled('id')) {

حيث أن filled تتأكد من وجود الحقل وأيضا لا يكون فارغا .

إذا إستمرت المشكلة يرجى إرفاق المشروع كاملا ويمكنك عدم رفع مجلد vendor و مجلد node_modules حتى لا يكون الحجم كبيرا.

  • 0
نشر

مجلد المشروع ليس كامل أرجو توفيره لتفقده، حاول تنفيذ الأمر التالي لحذف الكاش:

php artisan optimize:clear

ثم تفقد هل يوجد أخطاء في الكونسول؟ وأيضًا تجربة تعديل السكريبت لمعالجة الأخطاء وعرض البيانات كالتالي:

@push('scripts')
<script>
$(document).ready(function() {
    console.log('jQuery version:', $.fn.jquery);
    console.log('Select2 version:', $.fn.select2.amd.require.version);

    $('#housing_unit_id').select2({
        placeholder: "اختر الوحدة السكنية أو ابدأ بالكتابة للبحث",
        allowClear: true,
        width: '100%',
        dir: "rtl",
        minimumInputLength: 1,
        ajax: {
            url: "{{ route('ajax.housing-units') }}",
            dataType: 'json',
            delay: 250,
            data: function(params) {
                console.log('Search params:', params);
                return {
                    search: params.term,
                    page: params.page || 1
                };
            },
            beforeSend: function() {
                console.log('Sending AJAX request...'); 
            },
            success: function(data) {
                console.log('AJAX response:', data); 
            },
            error: function(xhr, status, error) {
                console.error('AJAX error:', error);
                console.error('Response:', xhr.responseText);
            },
            processResults: function(data, params) {
                params.page = params.page || 1;
                return {
                    results: data.results,
                    pagination: {
                        more: data.pagination?.more
                    }
                };
            },
            cache: true
        }
    }).on('select2:open', function() {
        console.log('Select2 opened');
    }).on('select2:closing', function() {
        console.log('Select2 closing');
    });
});
</script>
@endpush

إن استمرت المشكلة افتح أدوات المطور، وانتقل إلى تبويب Network  ثم قم بتصفية الطلبات لعرض XHR أو Fetch/XHR فقط، وانقر على حقل Select2 وابدأ بالكتابة ثم راقب تبويب Network هل يتم إرسال أي طلب إلى /ajax/housing-units؟

إن لم يتم إرسال أي طلب، ربما المشكلة في أن Select2 لا يقوم بتشغيل حدث البحث أو إرسال الطلب  بسبب خطأ في التهيئة أو تضارب JavaScript.

ولو تم إرسال الطلب ولكن فشل انقر على الطلب في تبويب Network، وافحص علامتي التبويب Headers و Response لمعرفة سبب الفشل كخطأ 404، 500، أو استجابة غير متوقعة، ولكن أنت ذكرت أن الرابط المباشر يعمل، من المفترض ألا يحدث ذلك الخطأ ولكنه ربما يحدث لو هناك خطأ في البارامتر search.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...