2014-09-05 51 views
0

大家好我想知道如何去做這件事......我正在構建一個laravel4應用程序,我想調用我的controller中的函數,該函數刪除所有的列表中的所選項目。從視圖中調用控制器功能laravel 4

這是我view

<div class="panel panel-default"> 
     <div class="panel-heading"> 
      Twitter Winners 
      <div class="pull-right btn-toolbar"> 
       <a href="{{action('[email protected]')}}" 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> 

Ideall我想執行function當用戶選擇該link

 <a href="{{action('[email protected]')}}" class="btn btn-danger">Delete Selected</a> 

我不想導航離開該頁面和這是我看到能夠做到這一點的唯一途徑。

+0

如果該頁面可以快速加載(沒有太多查詢),那麼您可以在同一視圖的最後返回時在該AdminController @ deleteSelectedTweets函數中編寫代碼。你的網頁只會刷新並完成工作。 – Nutic 2014-09-05 11:54:46

回答

2

這是您需要的AJAX調用。

E.g.

刪除按鈕的點擊: - 獲取選定的項目 - 加入AJAX數據傳遞 - 呼叫AJAX功能(功能您參考) - 刪除項目 - 更新大教堂。

有太多的代碼中有對堆棧溢出寫,但建議你考慮的事情有一些演示您的Jquery/JavaScript端右跳之前

+0

這很完美,我會仔細研究一下 – Javacadabra 2014-09-05 11:48:24

-1

使用Ajax,你需要: - 控制器功能做的工作例如:AjaxController @ deleteTweet($ id)

假設您使用信息表單傳輸選定的推文。

查看: 首先爲每個標籤添加1個類。

<a href="{{action('[email protected]')}}" 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是最好的解決方案。如果你想避免阿賈克斯,你可以做這樣的事情:

在AdminController

public function deleteSelectedTweets(){ 

// yours code 

    return View::make("view-name"); // View from which you came here 
} 

這是簡單的解決方案,你的頁面應該載入速度快,你呆在同一個頁面上。

相關問題