如何从控制器返回一个php值来查看,通过AJAX请求路由?

This is my ajax function in view calling the controller.

<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>

This is my controller function being called by my ajax from view

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);
}

I want the variable to be returned here inside a drop down :

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

Check your code, there are several things you have to keep in mind

In controller, return a array with the information

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];
}

in HTML, add csrf token

<html>
    <head>
        ...
        <meta name="csrf-token" content="{{ csrf_token() }}" />
        ...

define a selector:

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

in 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();
});

I hope it works good luck

use {{url('/rooms/'.$roomtype->type_id)}} and add data : {"_token": "{{ csrf_token() }}"} in your ajax url.

and change return statement in your controller like this

return Response::json($no_rooms);

In your controller

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

In your ajax

add this dataType: "json" after type: "GET" or anywhere like this

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

And in your ajax success parse the data

   success:function(data){
      console.log(data.rooms)
   }