2017-08-10 130 views
1

我正在学习laravel 5约一个月,现在我遇到了javascript问题。 我添加一个窗体点击刀片文件删除帖子。 但现在我不想使用窗体,我用javascript替换了它。 如何检测何时使用触摸delete'button。Laravel 5中的JavaScript问题

@extends ('layouts.master') 

@section ('head.title') 
Blog 
@stop 

@section ('body.content') 
    <div class="container"> 
     <div class="row"> 
      <div class="col-sm-6 col-sm-offset-3"> 
      </div> 
     </div> 

     <form class="form-show"> 
      <div class="row"> 
       <div class="col-sm-6 col-sm-offset-3"> 
        <h2> {{ $article->title}} </h2> 
        <p> {{ $article->content}} </p> 
       </div> 

       <div class="row"> 
        <div class="col-sm-6 col-sm-offset-3"> 
         <a href=" {{ route('article.edit', $article->id) }}" class="btn btn-info">Cập nhật</a> 
         <button type="submit" class="btn btn-primary">Xoa</button> 
        </div> 
       </div> 
      </div> 
     </form> 
    </div> 
    <script src="jshow.js"></script> 
@stop 

回答

1

添加ID到按钮,以便它在Javascript易于定位

<button id="delete-button" type="submit" class="btn btn-primary">Xoa</button> 

下一页添加此javascript

var deleteButton = document.getElementById("delete-button"); 
deleteButton.onclick = function() { delete(); return false; } 

过程中的删除在delete()方法

+0

感谢您的帮助。让我试试看。 –

+0

非常感谢。它的工作。 –

+0

可怕的抱歉,但你能帮助回答新的问题吗? 如何获得帖子的ID并通过JS在控制器上删除它。 –

1

试试这个:

<!DOCTYPE html> 
<html> 
    <body> 


<button onclick="myFun()">Click me</button> 

<p id="demo"></p> 

    <script> 
function myFun() { 
console.log('Clicked'); 
} 
</script> 

+0

感谢您的帮助。但它不起作用。 在叶片文件I加入 <按钮类型= “提交” 类= “BTN BTN-初级” \t \t \t \t \t \t \t的onclick = “myfun()”>删除 AND \t 但我检查控制台,它不记录任何东西。 –

+0

它适合你吗? – ZAhmed

+0

它不起作用。 –

0

由于HTML表单不能让PUTPATCH,或DELETE请求,您将需要添加一个隐藏_method场也欺骗这些HTTP verbs

,不要” t忘记添加csrf-token,这是验证POST请求所需的。

首先将此元标记添加到您的<head>中。

<meta name="csrf-token" content="{{ csrf_token() }}"> 

然后将此代码放置在您的JS文件的顶部。现在

$.ajaxSetup({ 
    headers: { 
     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    } 
}); 

,你可以利用data-*属性来保存文章AJAX的route

<button data-route="{{ route('article.destroy', $article->id) }}" class="btn btn-danger deleteArticle">Delete</button> 

在您的JS

document.querySelector('.deleteArticle').addEventListener('click', function() { 
    var route = this.dataset.route; 

    if (confirm("Are you sure you wish to delete this article?")) { 
     $.ajax({ 
      method: 'POST', 
      url: route, 
      data: { 
       "_method": 'DELETE', 
      }, 
      success: function() { 
       // handle success here 
      }, 
      error: function() { 
       // handle error here 
      }, 
     }); 
    } 
});