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

السؤال

نشر

أستخدم Laravel 9 لتطوير قائمة مهام باستخدم Ajax, حاولت إنشاء مهمة جديدة مع طلب post ajax:

$('#AddButton').click(function(event){
        var text = $('#addItem').val();
        $.post('tasks-list-add', {'text': text, '_token': $('input[name=_token]').val()}, function(data){
          
         });
});

ولكن المشكلة الآن هي أنها لا تعمل على الإطلاق ولا تقوم بتحديث الصفحة بعد الإرسال لإظهار السجل المضاف الجديد على الجدول. فكيف يمكنني حل هذه المشكلة؟ كود TaskListController

class TaskListController extends Controller
{
    public function index()
    {
        $tasks = Tasklist::all();
        return view('admin.tasks.list',compact('tasks'));
    }
    
    public function create(request $request)
    {
        $item = new Tasklist();
        $item->task_name = $request->text;
        $item->save();
        
        return 'Done';
    }
}

لكنني أردت أن تظهر المهمة الجديدة في الصفحة دون التحديث, لذلك حاولت إضافة معرف العناصر

<div id="items">
                    @php($menuCounter = 1)
                    @forelse($tasks as $task)
                        <tr>
                            <td>{{ ++$menuCounter }}</td>
                            <td class="ourItem" data-toggle="modal" data-target="#exampleModalCenter">{{ $task->task_name }}</td>
                        </tr>
                        @empty
                            <td colspan="5" class="text-center">Nothing here to show</td>
                    @endforelse
                </div>

ثم

$.post('tasks-list-add', {'text': text, '_token': $('input[name=_token]').val()}, function(data){
        $('#items').load(location.href + ' #items');    
});

هل يمكنكم مساعدتي؟

Recommended Posts

  • 0
نشر

يمكنك استخدام الموقت الزمني لكي تجعل الكود كل فترة معينة ينظر اذا كان هناك سجل جديد في قاعدة البيانات

وذلك باستخدام  دالة setInterval

const timer = setInterval(() => {
	//ajax code here
},1000);

التي تأخذ الكود الذي تريد تنفيذه كل فترة معينة ك بارامتر أول

والزمن الذي تريد اعادة تشغيل الكود بعده ك بارامتر ثاني

هنا مثلا تم وضع 1000 يعني 1 ثانية, حيث يقاس الزمن بوحدة المللي ثانية, 1000 مللي ثانية = 1 ثانية

 

يوجد طرق أخرى مثل تقنية Server Sent Events SSE

او استخدام Websocket

لكن هذه الطريقة هي الابسط والاسهل

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...