2017-04-25 11 views
0

Iは、次の形式でユーザによって提供されたデータに基づいて、ブレードビューでコントローラで算出されたデータを表示したいです。今のところ私はこれでやっています: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の公式ページを検索しましたが、何も見つかりませんでした。私の知る限りは、あなたの質問を理解できるよう

答えて

2

コードは大丈夫のようですが、ユーザーとの対話が新たなリロードを必要とするサーバーの応答を依存しているため、作成したロジックは、ページを更新せずにできない場合があります。

ユーザーは、彼はあなたがそのページに結果を表示し、サーバーから結果を取得]ボタンをクリックしたときにあなたはそうAJAXを使用して、ページのリフレッシュなしで別のインタラクティブなアクションを作ることができます。 AJAX要求/応答は、ユーザーのために舞台裏で行われるため、ページはあなたが望むものとすることができるリロードしなかった印象を与えます。

+0

私はそれを期待しました。ありがとう! – orim

関連する問題