我是Ajax的新手,我正在使用laravel,现在我想要一个删除按钮,将要删除的项目的ID发送到控制器。这是我的代码。
浏览
<div class="row">
@foreach($photos as $photo)
<div class="col-xs-3 col-md-1">
<button onclick="removeItem({{$photo->id}}); return false;">Delete</button>
</div>
@endforeach
</div>
这是我现在的脚本,对此没有任何想法
<script type="text/javascript">
function removeItem($myvar) {
alert($myvar);
}
</script>
我想将此发送到此路线
Route::post('deletephoto','GamefarmsController@deletephoto');
答案 0 :(得分:0)
您需要通过AJAX对服务器执行XMLHTTPRequest。由于您使用jQuery作为javascript库,因此使用post或ajax等函数可以轻松完成此类请求。
您的HTML /模板:
<button class="my_button" id="{{$photo->id}}" data-url="{{path('deletephoto')}}">Delete</button>
所以,在你的javascript函数中,使用类似的东西:
function removeItem() {
$('button.my_button').click(function(e){
e.preventDefault();
var url = $(this).attr('data-url');
var id = $(this).attr('id');
$.ajax({
type: "POST",
url: url,
data: {id:id},
cache: false,
success: function(data){
}
});
return false;
});
}
详情: 我们在您的HTML按钮中添加一个包含您的路径的数据属性。如果您使用Twig作为模板引擎,您可以编写如下内容:
data-url={{path('path_delete')}}
但这取决于你的模板引擎和laravel路由方式。
然后使用attr()jQuery函数点击你的按钮:
var url = $(this).attr('data-url');
您可以应用相同的规则来获取您的身份。
最后,您应该编写一个控制器,它将使用id参数获取POST请求并执行删除操作。您可以从控制器内的请求对象获取您的id,例如:
if($request->isXmlHttpRequest())
{
$id = (int)$request->request->get('id');
}