【问题标题】:pass data from controller to view without reloading Laravel 5.1将数据从控制器传递到视图而不重新加载 Laravel 5.1
【发布时间】:2015-09-04 14:45:47
【问题描述】:

单击按钮时,我通过ajax 向我的controller 发送post request。不同的按钮点击将通过ajax 发送不同的值到我的controller。在控制器中,我正在从数据库中检索数据。每次单击按钮到我的视图时,我都想发送此数据,以便我可以使用它。如果可能,我想在不加载页面的情况下发送数据。我该怎么做?我不想使用return view('viewname')。目前我正在将控制器注入到我的视图中,但按钮单击值已更改,因此来自 db 的数据也已更改。可能我必须不断检查我认为的价值吗?我可以从哪里开始的任何提示。我是 JS 的初学者。

我的控制器方法

public function getUserMessages(Request $request){
            $id = (int)$request->request->get('id');
        $messages = Message::where('message_by' , $id)->get();

        return $messages;
    }

查看

<div class="display-messages-area">
                @foreach($messages->getUserMessages($request) as $message)
                    <span style="color: #000;" class="{{$message->message_by==Illuminate\Support\Facades\Auth::user()->id ? "pull-right" :""}}">{{$message->message}}</span><br>
                @endforeach
            </div>

【问题讨论】:

  • 发布你正在使用的代码
  • @Patrick2607 我用代码更新了问题。
  • 你的逻辑有很大问题。控制器应该调用视图,而不是反向
  • @manix 不,这是不对的。当您需要控制器中的视图数据以便处理并返回时,您会怎么做?两者都可以。
  • 你的ajax调用的代码是什么?

标签: javascript jquery ajax laravel-5.1


【解决方案1】:

我通过学习更多 ajax 解决了我的问题,解决方案是使用 ajax success function。所以在成功函数中,我将controller返回的数据加载到我的div中。

<script>
        $(document).ready(function(){
            $("button").click(function(){
                $.ajax({
                    url:'a',
                    type: 'POST',
                    dataType:'json',
                    success: function(data){
                        var x;
                        for(x in data){
                            $("#div1").append(data[x]);
                        }
                    }
                });
            });
        });
    </script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-29
    • 2019-04-15
    • 2016-04-01
    • 2015-07-25
    • 2017-09-03
    • 2016-01-30
    • 1970-01-01
    相关资源
    最近更新 更多