2016-08-11 30 views
0

私はすべてのクライアントを表示するページがあります。 paginateを使用し、ページあたり16クライアントしか表示しません。私はリアルタイム検索機能を提供しています。 ビュー内の検索結果を表示

検索が実行され

、結果から選択したオプションは、基本的に次の関数を呼び出して、次の

select: function (event, ui) { 
    $.ajax({ 
     url: "/returnClient", 
     type: "GET", 
     datatype: "html", 
     data: { 
      value : ui.item.value 
     }, 
     success: function(data) { 
      $('.container').fadeOut().html(data.html).fadeIn(); 
     } 
    }); 
} 

トリガー

public function returnClient(Request $request) 
{ 
    if($request->ajax()){ 
     $selectedClient = $request->input('value'); 
     $client = Client::where('clientName', $selectedClient)->first(); 

     $html = View::make('clients.search', $client)->render(); 
     return Response::json(array('html' => $html)); 
    } 
} 

上記I出力クライアント変数は、私が見ることができる場合この特定のクライアントに関するすべての詳細。これは部分的なclients.searchに渡されます。 私は

{{dd($client)}} 

をすればclients.searchの中で、私は未定義の変数を取得:クライアントを。ビュー内で解析されたオブジェクトを取得できないのはなぜですか?

感謝

+0

ここでAPIを実際に使用しているかどうかは不明です。私はより良い方法は、ビュー内のHTMLをレンダリングすることです、APIは、エンドポイントを呼び出すと、いくつかのデータを受信し、このデータは、Javascriptを介してビュー内に埋め込まれていると思う。完全なHTMLを渡すことは、APIのアイデアを殺しています。 –

答えて

3

問題は、不適切な表示に$clientを渡しているということです。 Views documentationは、連想配列を介してデータを正しく渡す方法を示しています。 API docsは、配列が期待どおりであることを確認します。習慣のポイントとしてあなたがdump()代わりのdd()を使用して検討する必要があり、また

public function returnClient(Request $request) 
{ 
    if($request->ajax()){ 
     $selectedClient = $request->input('value'); 
     $client = Client::where('clientName', $selectedClient)->first(); 

     $html = View::make('clients.search', ['client' => $client])->render(); 
     return Response::json(array('html' => $html)); 
    } 
} 

は、代わりにこれを行います。

+0

その他の情報: 'dump()'は 'dd()'がバックグラウンドで呼び出す関数ですので、dieとargの可変数を受け入れることなく本質的に同じものです。 – samrap

関連する問題