2017-09-09 3 views
0

私はLaravelで新しく、ポストメソッドを使用してajaxからデータを渡そうとしました。

私のコントローラ私は値を取得しようとしたので、結果を表示するためにリターンレスポンスを使用しましたが、常にnullです。ここ
は私のコードです:なぜ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> 

と私は私のコントローラでこれをしようと試みたが、それは示しています{「タン」:ヌル}

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

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

と私もその1を、それが常に表示さ:{ "タン":ヌル}ここ

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": ""}が含まれている場合期待値を含める必要があります。

関連する問題