راکت
حل شده

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

10 پاسخ

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

تا اینجای قضیه مشکلی نیست
مشکل اینه که وقتی 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

ثبت پرسش جدید

پاسخ‌ها

10
woz
woz
@wozniak

تخصص: fan of open source world

بهترین پاسخ

@shahriar
در قسمت زیر

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

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

        setTimeout(function() {
            $(this).parent('form').submit();
        }, delayInMilliseconds)
رایموند
رایموند
@Raymond

تخصص: مختصص وردپرس - برنامه نویس لاراول

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

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

    $message->delete();

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

    return back();
}
shahriar
shahriar
@shahriar

تخصص: learning .....

@endworld
🤔🤔🤔🤔

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

شاید پاسخ شما همین‌جا باشد

رایموند
رایموند
@Raymond

تخصص: مختصص وردپرس - برنامه نویس لاراول

@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
shahriar
@shahriar

تخصص: learning .....

@endworld

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

رایموند
رایموند
@Raymond

تخصص: مختصص وردپرس - برنامه نویس لاراول

سید حسین رضوی
سید حسین رضوی
@hossein.r.1442

تخصص: برنامه نویس وب و طراح رابط کاربری

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

<a class="text-danger item-delete" href="https://roocket.ir/{{ 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
shahriar
@shahriar

تخصص: learning .....

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

shahriar
shahriar
@shahriar

تخصص: learning .....

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

سید حسین رضوی
سید حسین رضوی
@hossein.r.1442

تخصص: برنامه نویس وب و طراح رابط کاربری

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

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

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