2017-09-09 95 views
0

我是Laravel中的新成员,我试图使用post方法从ajax传递数据。

我的控制器我试图获取值,所以我使用返回响应来显示结果,但它始终为空。
这里是我的代码:为什么数据从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> 

和我tryed这在我的控制器,但它表明:{ “临时工”:空}

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

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

,我也是一个总是显示:{ “临时工”:空}

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> 

我想知道问题在哪里,我该如何解决它!

+0

也显示你的表单。 –

回答

0

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

相关问题