大家好,我想知道如何解决这个问题...我正在构建一个laravel4
应用程序,我想在我的controller
中调用一个删除所有选定项目的函数在列表中。
这是我的view
<div class="panel panel-default">
<div class="panel-heading">
Twitter Winners
<div class="pull-right btn-toolbar">
<a href="{{action('AdminBaseController@deleteSelectedTweets')}}" class="btn btn-danger">Delete Selected</a>
<a href="#" class="btn btn-primary">Confirm Winners</a>
<a href="#" class="btn btn-primary">Generate New List</a>
</div>
</div>
<div class="panel-body">
<table class="table table-hover">
<thead>
<tr>
<th>Delete</th>
<th>Tweet</th>
<th>Username</th>
<th>Name</th>
<th>To</th>
<th>From</th>
</tr>
</thead>
@foreach(Tweet::all() as $tweet)
<tr>
<td><input type="checkbox" name="delete_tweet" value="0"/></td>
<td>{{$tweet->tweet_text}}</td>
<td>{{$tweet->screen_name}}</td>
<td>{{$tweet->name}}</td>
<td><select name="origin">
<option value="0">Origin...</option>
<option value="1">Station 1</option>
<option value="2">Station 2</option>
<option value="3">Station 3</option>
</select>
</td>
<td>
<select name="destination">
<option value="0">Destination...</option>
<option value="1">Station 1</option>
<option value="2">Station 2</option>
<option value="3">Station 3</option>
</select>
</td>
</tr>
@endforeach
</table>
</div>
</div>
我想在用户选择此function
时执行link
:
<a href="{{action('AdminBaseController@deleteSelectedTweets')}}" class="btn btn-danger">Delete Selected</a>
我不想离开页面,这是我看到能够做到的唯一方式。
答案 0 :(得分:2)
这是你需要的AJAX电话。
E.g。
点击删除按钮: - 获取所选项目 - 添加到要传递的AJAX数据 - 调用AJAX函数(你引用的函数) - 删除项目 - 更新Dom。
有太多的代码可以写入堆栈溢出,但建议你在进入之前用一些演示调查你的Jquery / Javascript方面。
答案 1 :(得分:-1)
使用Ajax,您需要: - 执行作业的控制器函数:AjaxController @ deleteTweet($ id)
假设您使用帖子表单来传输选定的推文。
查看: 首先为每个标记添加1个类。
<a href="{{action('AdminBaseController@deleteSelectedTweets')}}" tweet-id={{$tweetID}} class="tweet btn btn-danger">Delete Selected</a>
$(".tweet").click(function(e){
e.preventDefault();
var tweetId = $(this).attr('tweet-id');
var node = $(this);
$.ajax({
url: {{ route_to_ajax_controller }} + "/" + tweetId,
success: function(data){
node.remove();
},
error: function(error){
console.log(error);
}
});
})
Ajax是最好的解决方案。如果你想避免使用Ajax,你可以这样做:
AdminController中的
public function deleteSelectedTweets(){
// yours code
return View::make("view-name"); // View from which you came here
}
这是一个简单的解决方案,您的页面应该加载速度快,并且您保持同一页面。