【问题标题】:Why does data pass from ajax to a controller are always null为什么从ajax传递到控制器的数据总是为空
【发布时间】:2023-03-05 20:19:01
【问题描述】:

我是 Laravel 的新手,我尝试使用 post 方法从 ajax 传递数据。

我的控制器我试图获取值,所以我使用返回响应来显示结果,但它始终为空。
这是我的代码:

<script>
    $(function () {
        var tempsReal = 'matin';
        var dt = new Date($.now());
        var hs = dt.getHours();
        var d = new Date();
        d.setHours(12);
        if ((dt.getHours() >= d.getHours()))
            tempsReal = 'soir';
        $('#confirm').prepend('Marquer votre présence du : <strong>' + tempsReal + '</strong>');
        $(document).on('submit', '#frm', function (e) {
            e.preventDefault();
        .
            $ajax({
                method: $(this).attr('method'),
                url: $(this).attr('action'),
                data: {tempsReal: tempsReal},
                //data: $(this).serialize(),
                dataType: "json"
            })
        });
    })
</script>

我在控制器中尝试了这个,但它显示:{"temps":null}

public function store(Request $request)
{
    $this->tempsReal = $request->input('tempsReal');

    return Response::json([
        'temps' => $this->tempsReal,
    ]);
}

我也经常显示它:{"temps":null}

public function store()
{
    $this->tempsReal = request()->get('tempsReal');

    return Response::json([
        'temps' => $this->tempsReal,
    ]);
}

这是表格:

   <div class="container" id="RappelPres" style="
   width: 400px;
   height: 200px;
   position: absolute;
   top: 280px;
   left: 500px;
   border: 1px #a5a3a2 solid;">
   <div style="background-color: #42b43b;width:100%;height:40px;position: absolute ;left:0px">
       <form method="POST" action="{{ url('new') }}" style="text-align:center;"  role="form" id="frm" >
        {{ csrf_field()}}
        <button class="btn" id="confirm" type="submit" style="background-color:#42b43b;color: white;width:100%;height:100% "></button>
    </form>
</div>
<br>
<br>
<hr>
<div class="container" style="width:98%">
    <div class="alert alert-success alert-dismissible hidden">
        Pésence marqué avec succès.
    </div>
</div>
<div class="alert alert-danger alert-dismissible hidden" role="alert" style="width:98%">
</div>
</div>

我想知道问题出在哪里以及如何解决!

【问题讨论】:

  • 也显示您的表单。

标签: jquery ajax laravel


【解决方案1】:

在开发者控制台和方法中检查通过 Ajax 发送的数据。如果方法是“GET”,那么由于您将有效负载作为 JSON 发送,那么 laravel 无法从请求中获取“tempsReal”,如果请求方法是“POST”并且发送的数据包含 {“tempsReal”:“”} 然后输出应该包含预期值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-29
    • 2021-11-29
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多