web-dev-qa-db-ja.com

laravel

私は次のコードを持っています:

@foreach($results as $result)
  <tr>
    <td>{{$result->my_id}}</td>
    <td>{{$result->province_name}}</td>
    <td>{{$result->city_name}}</td>
    <td>
      <a class="btn btn-primary" href="{{route('city-edit', $result->my_id)}}"><i class="fa fa-edit"></i></a>
      <a class="btn btn-danger" href="{{route('city-delete', $result->my_id)}}"><i class="fa fa-trash"></i></a>
    </td>
  </tr>
@endforeach

各データの削除に関する確認を追加するにはどうすればよいですか?

12
yudijohn

私はより簡単な方法を好む、以下のようにonclick="return confirm('Are you sure?')"を追加するだけです:

<a class="btn btn-danger" onclick="return confirm('Are you sure?')" href="{{route('city-delete', $result->my_id)}}"><i class="fa fa-trash"></i></a>

これがあなたのリンクである場合:

<a href="#" class="delete" data-confirm="Are you sure to delete this item?">Delete</a>

このJavascriptを使用します。

var deleteLinks = document.querySelectorAll('.delete');

for (var i = 0; i < deleteLinks.length; i++) {
    deleteLinks[i].addEventListener('click', function(event) {
        event.preventDefault();

        var choice = confirm(this.getAttribute('data-confirm'));

        if (choice) {
            window.location.href = this.getAttribute('href');
        }
    });
}

注:<a>deleteclassが必要です。このソリューションは 控えめなJavaScript を使用し、IE 9以降で動作するはずです。

4
Pᴇʜ
  <a class="btn btn-danger" onclick="return myFunction();" href="{{route('city-delete', $result->my_id)}}"><i class="fa fa-trash"></i></a>

<script>
  function myFunction() {
      if(!confirm("Are You Sure to delete this"))
      event.preventDefault();
  }
 </script>
4
Anns Rahim
<a href="{{ route('city-delete', $result->my_id) }}" 
   class="btn btn-danger" data-method="DELETE" data-confirm="Are you sure?"> Delete</a>

brexis/laravel-data-method パッケージでは、適切なHTTPメソッドと確認テキストを指定できます。

これは、たとえばルートファイルにこれがある場合に役立ちます。

Route::get('cities/{city}', 'CityController@show')->name('city-show');
Route::delete('cities/{city}', 'CityController@destroy')->name('city-delete');
2
Junior Gantin

これがあなたのリンクである場合:

<a href="{{route('venuepropertyarea.delete', ['propertyarea' => $propertyareaname->id])}}" data-method="DELETE" data-confirm="Are you sure to delete this item?" class="btn btn-danger btn-xs pull-right delete"><i class="fa fa-trash"></i> </a>

ルート:

Route::get('/icrm/venues/property_area/delete/{propertyarea}', 'VenuePropertyAreaController@deletepropertyarea')->name('venuepropertyarea.delete');

このJavascriptを使用します。

var deleteLinks = document.querySelectorAll('.delete');

for (var i = 0; i < deleteLinks.length; i++) {
    deleteLinks[i].addEventListener('click', function(event) {
        event.preventDefault();

        var choice = confirm(this.getAttribute('data-confirm'));

        if (choice) {
            window.location.href = this.getAttribute('href');
        }
    });
}

注:<a>deleteclassが必要です。このソリューションは 控えめなJavaScript を使用し、IE 9以降で動作するはずです。

0
Akash Sethi

index.blade.php

<form action="{{route('todos.destroy', $todo->Id)}}" method="post">
              <input type="hidden" name="_method" value="DELETE">
              @csrf
      <button id="btnDelete"class="btn btn-danger btn-sm">Delete</button>
     </form>
<script type="javascript">
       document.onsubmit=function(){
           return confirm('Sure?');
       }
</script>

私は純粋なPHPフォームを使用しました。DELETEメソッドは、ページ送信アクションで非表示として渡される必要があるため、JavaScriptを介してそれをキャッチし、確認アラートを受け取ります。

0