2017-04-25 11 views
0

사용자가 폼에서 제공 한 데이터를 기반으로 블레이드보기에 컨트롤러에 계산 된 데이터를 표시하고 싶습니다. 지금은 다음과 같이 수행하고 있습니다.Laravel, 표시 목적으로 컨트롤러에서 데이터 가져 오기

//View xyz.blade.php 
<div class="card"> 
    <div class="card-header">Add link</div> 
    <div class="card-block"> 
     {{ Form::open(array('url' => 'getSimilar', 'method' => 'GET')) }} 
     {{ Form::token() }} 
     <div class="form-group"> 
      {{ Form::label('url', 'url:') }} 
      {{ Form::text('url', '') }} 
     </div> 
     {{ Form::submit('Get') }} 
     {{ Form::close() }} 
    </div> 

    @if(! empty($similar)) 
     <div class="card-block"> 
      @foreach ($similar as $item) 
       {{$item->title}} <br/> 
      @endforeach 
     </div> 
    @endif 
</div> 

//Controller 
public function getSimilar(){ 
    .. 
    return View('xyz', ['similar' => $found]); 
} 

위 코드는 예상대로 작동합니다. 나는 URL을 제공 할 수 있으며 "Get"을 클릭하면 양식 아래에 발견 된 항목의 목록을 볼 수 있습니다. 그러나 전체 페이지가 새로 고쳐지기 때문에 이것이 올바른 방법이 아니라는 것을 알려줍니다. 내가 맞습니까 (위의 코드가 좋지 않습니다)? 그렇다면 새로 고치지 않고 가져온 데이터를 표시하는 빌드 기능이 있습니까? 공식 Laravel-form 페이지를 검색했지만 아무 것도 찾지 못했습니다.

답변

2

최대한 멀리 귀하의 질문을 이해할 수 있습니다.

코드는 괜찮은 것처럼 보이지만 사용자 상호 작용이 새로운 다시로드가 필요한 서버 응답에 의존하기 때문에 페이지 새로 고침 없이는 만들 수없는 로직이 가능하지 않을 수 있습니다.

AJAX를 사용하여 페이지를 새로 고치지 않고도 다른 대화 형 작업을 만들 수 있습니다. 사용자가 버튼을 클릭하면 서버에서 결과를 가져 와서 결과를 페이지에 표시합니다. AJAX 요청/응답이 사용자를 위해 장면 뒤에서 발생하기 때문에 페이지가 다시로드되지 않는다는 인상을주었습니다.

+0

나는 그것을 기대했다. 감사! – orim