2017-09-09 30 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」:「」},則輸出應該包含預期值。

相關問題