dssj88098 2017-02-16 23:53
浏览 17
已采纳

如何从控制器返回一个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>
  • 写回答

3条回答 默认 最新

  • dtrz17917 2017-02-17 02:32
    关注

    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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3