Konfirmasi delete Sweet Alert di Laravel

Assalamualaikum Gan, saya mau sharing sekalian bertanya, saya baru saja berhasil mebuat konfirmasi delete di laravel menggunakan Sweet Alert setelah seharian mencoba. Yang ingin saya tanyakan apakah ada cara lain yang lebih baik atau yang lebih direkomendasikan ?

berikut kode javascript untuk sweet alert nya:

$('#form-delete').on('submit', function(e){
    var form = this;
    e.preventDefault();
    swal({
      title: 'Hapus data ?',
      text: "Klik Hapus untuk menghapus data !",
      type: 'warning',
      showCancelButton: true,
      confirmButtonColor: '#3085d6',
      cancelButtonColor: '#d33',
      confirmButtonText: 'Hapus'
    }).then((result) => {
      if (result.value) {
        return form.submit();
      }
    })
});

Kode form delete nya:

{!!Form::open(['action' => ['PostsController@destroy', $post->id], 'id' => 'form-delete', 'method' => 'POST', 'class' => 'pull-right'])!!}
    {{Form::hidden('_method', 'DELETE')}}
    {{Form::submit('Delete', ['class' => 'btn btn-danger'])}}
 {!!Form::close()!!}

code methode delete pada controllernya:

public function destroy($id)
    {
      $post = Post::find($id);
      if (auth()->user()->id !==$post->user_id)
      {
        return redirect('/posts')->with('error', 'Unauthorized Page');
      }

      if ($post->cover_image != 'noimage.jpg')
      {
        Storage::delete('public/cover_images/'.$post->cover_image);
      }

      $post->delete();

      notify()->flash('Berhasil menghapus data !', 'success');
      return redirect('/posts');
    }

terima kasih gan..

avatar ZeinMubaraq
@ZeinMubaraq

15 Kontribusi 2 Poin

Diperbarui 5 tahun yang lalu

9 Jawaban:

Cara diatas bisa gan. Klo ane biasanya pake "uxweb/sweet-alert", model syntax kurang lebih sama, cuma bedanya di controller, tambahin:

use Alert;
public function destroy($id)
    {
      $post = Post::find($id);
      if (auth()->user()->id !==$post->user_id)
      {
        Alert::error('Unauthorized Page')->persistent('Confirm');
        return redirect('/posts');
      }

      if ($post->cover_image != 'noimage.jpg')
      {
        Storage::delete('public/cover_images/'.$post->cover_image);
      }

      $post->delete();

      Alert::success('Berhasil menghapus data !')->persistent('Confirm');
      return redirect('/posts');
    }

Ato kadang klo diperlukan ane pake ajax, trus smua notif sweet alert dan fungsi form ane panggil dari JS.

Ada variasi lainnya juga dgn menggunakan macro gan. Jadi banyak alternatif.

Smoga bisa membantu.

avatar zergz
@zergz

62 Kontribusi 47 Poin

Dipost 6 tahun yang lalu

Wah makasih banyak gan @zergz

avatar ZeinMubaraq
@ZeinMubaraq

15 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

permmisi gan mau nanya ane nyoba kode diatas ko gak bisa ngehapus datanya ya gan? apa mungkin harus pake ajax baru bisa ngehapus ? terimakasih

avatar Jakdaw123
@Jakdaw123

12 Kontribusi 1 Poin

Dipost 6 tahun yang lalu

coba hilangkan code ini gan, jangan pakai if

 if (auth()->user()->id !==$post->user_id)

soalnya itu pakai hak akses gan, hanya bisa menghapus apa bila user id nya sesuai dengan membuat post gan..

avatar ZeinMubaraq
@ZeinMubaraq

15 Kontribusi 2 Poin

Dipost 6 tahun yang lalu

gan maksudnya class => pull right tuh apa yah?

avatar wardana
@wardana

1 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

@wardana, 'class' => 'pull-right' = attribute class pada tag html, contoh:

<pre> {!!Form::open(['action' =&gt; ['action_disini'], 'id' =&gt; 'form-delete', 'method' =&gt; 'POST', 'class' =&gt; 'pull-right'])!!} {!!Form::close()!!} // akan membuat &lt;form method="POST" action="action_disini" id="form-delete" class="pull-right" &amp;gt; </pre>

Untuk class-nya sendiri bisa dibuat di css jadi class itu bebas sesuai keinginan. Class pull-right itu dari bawaan bootstrap, kalaupun tdk memakai bootstrap bisa dibuat sendiri pada css:

<pre> .pull-right { float: right; } </pre>

Smoga bisa membantu @wardana

avatar zergz
@zergz

62 Kontribusi 47 Poin

Dipost 5 tahun yang lalu

@zergx untuk laravel 5.7 gak bisa ya mas?

avatar gugunguntoro
@gugunguntoro

250 Kontribusi 10 Poin

Dipost 5 tahun yang lalu

@gugunguntoro , sebaiknya buka thread baru gan, klo bisa sertakan pesan error dan kode yang bermasalah. Jika menggunakan package, perlu diperhatikan klo dah support 5.7 ato blum? Tapi untuk ane sampe skarang ga da masalah, masih lancar2 saja gan.

avatar zergz
@zergz

62 Kontribusi 47 Poin

Dipost 5 tahun yang lalu

Ga bisa gan sudah dicoba sweetalertnya gk muncul

avatar Taufikhdyt17
@Taufikhdyt17

16 Kontribusi 4 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban