Php 从视图laravel 4中调用控制器函数
大家好,我想知道我该怎么做……我正在构建一个Php 从视图laravel 4中调用控制器函数,php,laravel,laravel-4,scope,Php,Laravel,Laravel 4,Scope,大家好,我想知道我该怎么做……我正在构建一个laravel4应用程序,我想调用我的控制器中的一个函数来删除列表中的所有选定项 这是我的视图 <div class="panel panel-default"> <div class="panel-heading"> Twitter Winners <div class="pull-right btn-toolbar">
laravel4
应用程序,我想调用我的控制器中的一个函数来删除列表中的所有选定项
这是我的视图
<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>
我不想离开这个页面,这是我能做到的唯一方法 这是您需要的AJAX调用
例如
单击“删除”按钮后:
-获取所选项目
-添加要传递的AJAX数据
-调用AJAX函数(您引用的函数)
-删除项目
-更新Dom
有太多的代码需要在堆栈溢出上编写,但建议您在开始之前先通过一些演示来了解Jquery/Javascript方面的内容。使用Ajax您需要:
-执行作业的控制器功能,例如:AjaxController@deleteTweet($id)
假设您使用post表单传输所选推文
视图:
首先,为每个标记再添加一个类
<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);
}
});
})
这是一个简单的解决方案,您的页面应该加载得很快,并且您可以保持在同一页面上。太好了,我将研究这个问题,如果该页面可以加载得很快(无需太多查询),您可以在该页面中进行编写AdminController@deleteSelectedTweets函数的末尾返回相同的视图。您的页面将刷新并完成工作。
<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);
}
});
})
public function deleteSelectedTweets(){
// yours code
return View::make("view-name"); // View from which you came here
}