shahriar
4 سال پیش توسط shahriar مطرح شد
10 پاسخ

delete اشتباه هنگام استفاده از 2 sweatalert

سلام دوستان خسته نباشید
من میخوام موقعی که داخل پنل مدیریت مدیر خواست یک پستی رو حذف کنه یه الرت نمایش داده بشه
برای همین از سوییت الرت استفاده میکنم
توضیح تصویر رو وارد کنید

تا اینجای قضیه مشکلی نیست
مشکل اینه که وقتی delete میکنم مثلا آیدی 9 رو پاک میکنم آخرین آیدی دیلیت میشه مثلا 30
در حالی که اگه از سوییت الرت استفاده نکنم آیدی درست پاک میشه .....

این کد جاوا اسکریپت 👇👇👇

jQuery(document).ready(function(){
    jQuery('.ready').on('click', function(){
        event.preventDefault();
        const swalWithBootstrapButtons = Swal.mixin({
            customClass: {
                confirmButton: 'btn btn-success ml-5',
                cancelButton: 'btn btn-danger'
            },
            buttonsStyling: false
        })

        swalWithBootstrapButtons.fire({
            title: 'آیا میخواهید حذف کنید ؟',
            text: "این تاپیک دیگر قابل برگشت نیست !",
            icon: 'warning',
            showCancelButton: true,
            confirmButtonText: 'بلی',
            cancelButtonText: 'خیر',
        }).then((result) => {
            if (result.isConfirmed) {
                console.log()
                swalWithBootstrapButtons.fire(
                    'پاک شد !',
                    'تاپیک انتخاب شده پاک شد .',
                    'success'
                )
                                var delayInMilliseconds = 1000; //1 second

                setTimeout(function() {
$('form').submit();
                }, delayInMilliseconds)

            } else if (
                /* Read more about handling dismissals below */
                result.dismiss === Swal.DismissReason.cancel
            ) {
                swalWithBootstrapButtons.fire(
                    'پاک نشد',
                    'تاپیک انتخاب شده امن است :)',
                    'error'
                )
            }
        })
    });
});

//----------------------------------

اینم فرم 👇👇

 <form class="form" action="{{route('messages.destroy',['message' => $message->id])}}"
                                                  method="post">
                                                @csrf
                                                @method('delete')
  <button style="color: white"  class="btn ready btn-danger">حذف</button>
                                            </form>

فانکشن destroy 👇👇👇

    public function destroy(Message $message)
    {
        $message->delete();
        return back();
    }

چه کنم ؟

@mohsenbostan
@MehdiAghighi
@endworld
@ali.bayat


ثبت پرسش جدید
woz
تخصص : fan of open source world
@wozniak 4 سال پیش مطرح شد
0

@shahriar
در قسمت زیر

                setTimeout(function() {
$('form').submit();
                }, delayInMilliseconds)

این فرم که شما سلکت کردید شامل چندین فرم داخل صفحه شما میشه. باید کلیدی که فشار میدید رابطه ای با فرم مورد نظر شما داشته باشه تا درست سلکت بشه ،مثلا اگر parent باشه:

        setTimeout(function() {
            $(this).parent('form').submit();
        }, delayInMilliseconds)

رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 4 سال پیش آپدیت شد
0

درود...
در تابع destroy ای دی تعریف نکردید:

public function destroy(Message $message, $id)
{
    $message = Message::findOrFail($id);

    $message->delete();

    Session::flash('flash_message', 'Message successfully deleted!');

    return back();
}

shahriar
تخصص : learning .....
@shahriar 4 سال پیش مطرح شد
0

@endworld
🤔🤔🤔🤔

آیدی رو توی فرم دادم دیگه !!!
بعد متد destroy یک پارامتر به صورت ورودی دریافت میکنه


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 4 سال پیش مطرح شد
0

@shahriar
آی دی توی فرم دادی ولی درخواستی که به کنترلر می فرسته رو عمل نمی کنه ...
توی پروژه کوچیکی که من نوشتم به این صورته:

تعریف دکمه حذف :

<form action="{{ route('users.destroy', $user->id) }}" method="get">
        @csrf
       @method('DELETE')
      <input type="submit" value="حذف" class="btn btn-danger btn-sm">
 </form>

2.تعریف تابع حذف محتوا:

public function destroy($id)
    {
        $users = User::where('id',$id)->delete();
        return back()->withInfo('کاربر مورد نظر با موفقیت حذف شد.');
    }

shahriar
تخصص : learning .....
@shahriar 4 سال پیش مطرح شد
0

@endworld

باز هم همونجوره


woz
تخصص : fan of open source world
@wozniak 4 سال پیش مطرح شد
0

@shahriar
در قسمت زیر

                setTimeout(function() {
$('form').submit();
                }, delayInMilliseconds)

این فرم که شما سلکت کردید شامل چندین فرم داخل صفحه شما میشه. باید کلیدی که فشار میدید رابطه ای با فرم مورد نظر شما داشته باشه تا درست سلکت بشه ،مثلا اگر parent باشه:

        setTimeout(function() {
            $(this).parent('form').submit();
        }, delayInMilliseconds)

رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 4 سال پیش مطرح شد
سید حسین رضوی
تخصص : برنامه نویس وب و طراح رابط کار...
@hossein.r.1442 4 سال پیش مطرح شد
0

شما نیاز نیست از فرم استفاده کنید به راحتی با یه دستور ایجکس می تونید عملیات حذف رو انجام بدید
مثلا نمونه زیر رو من خودم استفاده میکنم فقط دارم از پیغام سفارشی که خودم ایجاد کردم استفاده میکنم اونطرف داخل کنترلر فقط یه پیغام موفقیت آمیر رو return میکنید

<a class="text-danger item-delete" href="{{ route('permissions.destroy', $permission->id) }}" data-id="{{ $permission->id }}" title="حذف" data-toggle="tooltip"><i class="feather icon-trash"></i></a>
$(document).ready(function () {
    $('.item-delete').on('click', function (e) {
        e.preventDefault();
        var element = e.target;
        var id = $(this).data('id');
        var token = $("meta[name='csrf-token']").attr("content");

        showConfirm('آیا از حذف این دسترسی اطیمنان دارید؟؟', function () {
            $.ajax({
                url: '/admin/permissions/' + id,
                type: "DELETE",
                headers: {'X-CSRF-TOKEN': token},
                success: function (data) {
                    $('#tr_' + id).slideUp('slow');
                    addToast("دسترسی مورد نظر با موفقیت حذف شد.", "linear-gradient(to right, #D92644, #F29D0D)");
                }
            });
        });

    });
});

shahriar
تخصص : learning .....
@shahriar 4 سال پیش مطرح شد
0

@hossein.r.1442 ممنونم فقط یک سوال
showConfirm از کجا میاد؟


shahriar
تخصص : learning .....
@shahriar 4 سال پیش مطرح شد
0

@wozniak
آره دقیقا مشکل این بود
چون توی فانکشن set timeout گزاشته بودم این اتفاق براش افتاده بود ممنون از شما


سید حسین رضوی
تخصص : برنامه نویس وب و طراح رابط کار...
@hossein.r.1442 4 سال پیش مطرح شد
0

سلام ببخشید دیر پاسخ میدم گفتم بگم شاید بعدا نیازتون شد
توی اون کدهایی که من فرستادم توابعی که براتون آشنا نیست رو من خودم ساختم چون زیاد استفاده میکنم ساختم که راحت باشم برای استفاده


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام