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
}