2014-09-05 4 views
0

안녕하세요. 나는 이것에 대해 어떻게 생각하는지 궁금합니다. laravel4 애플리케이션을 구축 중이며, 내 controller에있는 모든 기능을 호출하고 싶습니다. 목록에서 선택한 항목.보기 내에서 컨트롤러 기능 호출하기 larovel 4

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

내가 멀리 다른 페이지로 이동하지 않고 :

이 사용자가이 link가 선택할 때 나는 function을 실행하고 싶습니다 내 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입니다 그것이 내가 할 수있는 유일한 방법이다.

+0

페이지가 빠르게로드 될 수 있으면 (많은 쿼리가 필요하지 않음) 동일한 뷰에 대해 끝에있는 AdminController @ deleteSelectedTweets 함수를 쓸 수 있습니다. 그리고 귀하의 페이지가 새로 고침되고 작업을 수행합니다. – Nutic

답변

2

당신이 필요로하는 AJAX 전화입니다.

예.

삭제 버튼의 클릭에

: - 선택된 항목 는하기 - AJAX 데이터에 추가 를 전달할 - AJAX 기능 (기능을 사용하면 참조) 전화 - 제거 항목 - 업데이트 돔을.

당신이 필요가 너무 많은 코드가 스택 오버 플로우에 쓸 수 있지만 당신이 바로 점프하기 전에 몇 가지 데모와 가지의 당신의 jQuery를/자바 스크립트 측에보고 제안

+0

그게 완벽 해, 내가 그렇게 보일거야. – Javacadabra

-1

을 아약스로된다. - 컨트롤러 기능을하는 예 : 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); 
     } 
    }); 

}) 

아약스가 가장 적합합니다. 이것은 쉬운 솔루션입니다 AdminController

public function deleteSelectedTweets(){ 

// yours code 

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

, 당신의 페이지가 빠르게로드해야합니다, 당신은 같은 페이지에 유지 : 당신은 Ajax를 피하고 싶은 경우에, 당신은 이런 식으로 뭔가를 할 수 있습니다.

관련 문제