2017-02-16 4 views
0

これは私のajax関数で、コントローラを呼び出すビューです。この私のコントローラ機能は、ビューAJAX経由でリクエストされたルートからコントローラへのPHP値を返す方法は?

public function numberOfRooms($type_id, Request $request) { 
    $room_model = new room; 
    // $request->session()->forget('no_rooms'); 
    //$request->session()->regenerate(); 
    $no_rooms = $room_model - > where('type_id', '=', $type_id) - > get() - > count(); 
    //$request->session()->put('no_rooms', $no_rooms); 
    return back() - > with($no_rooms); 
} 

からの私のAJAXによって呼び出されている

<script type="text/javascript"> 
    $(document).ready(function() { 
     $.ajax({ 
      type: "get", 
      url: '/rooms/{{ $roomtype->type_id }}', 
      data: "", 
      success: function(data) { 
       console.log(data); 
       //var str = "<option value="+data+">"+data+"</option>"; 
       //console.log(str); 
       //$("select").append( str ); 
       //$(".inner").append(str); 
      } 
     }) 
    }); 
</script> 

私は、変数がドロップダウン内で、ここで返されることにしたい。

<select class="inner right-align"> 
    <option value="" disabled selected>Choose your option</option> 
    <option>{{ $no_rooms }}</option>    
</select> 
+0

を解析しますか?それは良い質問です。彼はいくつかの良い瞬間を指摘@マヌエル寺院の答えをチェックしてください。あなたのコントローラからの1つのことは、あなたがjsonレスポンスを返すことを確認します: 'return response() - > json(['roomsCount' => $ no_rooms]);' –

答えて

0

はあなたのコードをチェックし、あなたが念頭に置いておかなければならないいくつかのことがあります

コントローラでは、エーションHTML、 で

public function numberOfRooms(Request $request, $type_id) 
{ 
    $room_model = new room; 
    $no_rooms = $room_model->where('type_id', '=', $type_id)->get()->count(); 
    return [ 'rooms' => $no_rooms]; 
} 

CSRFトークン

<html> 
    <head> 
     ... 
     <meta name="csrf-token" content="{{ csrf_token() }}" /> 
     ... 
を追加するセレクタを定義:JS

$(document).ready(function(){ 
    $.ajaxSetup({ 
     headers : { 
      'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content') 
     }, 
    }); 
    function loadRoom(){ 
     $.ajax({ 
      type: "get", 
      url: '/rooms/{{ $roomtype->type_id }}', 
      data: "", 
      success: function(data) { 
       for (room in data.rooms) { 
        $('#your-selector').append($('<option>', { 
         value: room.id, 
         text: room.name 
        })); 
       } 
      } 
     }) 
    } 

    loadRoom(); 
}); 

<select id="your-selector" class="inner right-align"> 
    <option value="" disabled selected>Choose your option</option> 
</select> 

を私はそれが幸運に

0の作品を願って
0

{{url('/rooms/'.$roomtype->type_id)}}を使用し、data : {"_token": "{{ csrf_token() }}"} をajax URLに追加してください。タイプした後、 "JSON":

とあなたのアヤックスでは、あなたのコントローラ

return array(
    'rooms' => $rooms 
); 

ではこの

return Response::json($no_rooms); 
0

のようなあなたのコントローラ内でreturn文を変更

は、このデータ型を追加する "GET"またはこのような場所で

$ajax({ 
    type: "get", 
    dataType: "json" 

そして、あなたのAjaxの成功には、データ、ここのためにdownvotesが何であるか

success:function(data){ 
     console.log(data.rooms) 
    } 
関連する問題