首页 > 解决方案 > 如何使用 ajax 将多个返回值传递给 laravel 控制器

问题描述

我不想使用具有多个返回值的 ajax 将多个变量传递给 laravel 控制器。

JavaScript

$(function(){
  var standard = standardRoom();
  var n_standard = standard[0];
  var xSumStandard = standard[1];
  var totalStandard = standard[2];

  var quad = quadRoom();
  var n_quad = quad[0];
  var xSumQuad = quad[1];
  var totalQuad = quad[2];

  var family = familyRoom();
  var n_family = family[0];
  var xSumFamily = family[1];
  var totalFamily = family[2];

  var barkada = barkadaRoom();
  var n_barkada = barkada[0];
  var xSumBarkada = barkada[1];
  var totalBarkada = barkada[2];

    $('#formSubmit').on('click', function(){
     $.ajax({
           url: APP.baseUrl + '/check/next',
           data: {'_token': window.Laravel.csrfToken, 'n_standard': n_standard, 'xSumStandard': xSumStandard, 'totalStandard': totalStandard,'n_quad': n_quad,'xSumQuad': xSumQuad,'totalQuad': totalQuad,'n_family': n_family,'xSumFamily': xSumFamily,'totalFamily': totalFamily, 'n_barkada': n_barkada,'xSumBarkada': xSumBarkada,'totalBarkada': totalBarkada},
           type: 'POST',
           success: function (data) {
               console.log('Success')
             },
        });
    });
});
  {!! Form::open(['url' => '/request',  'id' => 'formSubmit']) !!}
   <input type="submit" id="submitbutton" value="NEXT" style="width:310px;background-color:#5d0b0b">
   {!! Form::close() !!}

我尝试按照有关如何在堆栈中访问多个返回值的说明进行操作并想出这个。我不知道这是否有效。但我需要的是传递数据中的所有值:

路线

Route::post('check/next', 'Reservation@getRequest');

现在下一步是什么?我如何在控制器中得到这个?我是 laravel 和 ajax 的新手,所以我很难理解这个过程问题是我得到了一个未定义的索引:n_standard 编辑

控制器

public function getRequest(Request $request){
   $n_standard = $_GET['n_standard'];
   $xSumStandard = $_GET['xSumStandard'];
   $totalStandard = $_GET['totalStandard'];

   $n_quad = $_GET['n_quad'];
   $xSumQuad = $_GET['xSumQuad'];
   $totalQuad = $_GET['totalQuad'];

   $n_family = $_GET['n_family'];
   $xSumFamily = $_GET['xSumFamily'];
   $totalFamily = $_GET['totalFamily'];

   $n_barkada = $_GET['n_barkada'];
   $xSumBarkada = $_GET['xSumBarkada'];
   $totalBarkada = $_GET['totalBarkada'];
 }

标签: javascriptjqueryajaxlaravel

解决方案


在控制器中,首先您应该将$_GET替换为$_POST / $_REQUEST因为您正在通过POST从 ajax 发送数据。

或者

您还可以使用下面给定的代码检查您是否正在获取请求值。

use Illuminate\Support\Facades\Request;
public function getRequest(Request $request){
 $request->all()
}

推荐阅读