在Laravel中使用Ajax将数据从视图传递到控制器

时间:2019-10-15 07:52:12

标签: javascript php jquery ajax laravel-5.8

我正在尝试使用ajax将两个变量传递给我的控制器。没有错误,但是当我在控制器中获取数据时,数据为空。

Web.php

Route::get('/donate/select-card', 'CardController@chooseCard')->name('select-card');

CardController.php

public function chooseCard()
{
  $from = Input::get("fromAmount");
  // $to = $request->input('toAmount');
  dd($from);
}
  

'null'是这里的输出

Script.js

fromAmount = $(this).find('p span:nth-child(1)').text().split("₹ ")[1];
toAmount = $(this).find('p span:nth-child(2)').text().split("₹ ")[1];
$.ajax({
  type:'GET',
     url: '/donate/select-card',
     data:  { fromAmount : fromAmount, toAmount : toAmount }
});

我想要的是在控制器中包含fromAmount和toAmount。

谢谢。

这是来自网络的ajax数据:

enter image description here

2 个答案:

答案 0 :(得分:0)

public function chooseCard(Request $request)
{
  return $request->all();
}

**注入Request类

**请参阅开发工具的响应。

答案 1 :(得分:0)

那个很棘手:)

在HTML中,您有一个链接将此调用包装到ajax。搞砸了

<a href="/donate/select-card">
    <button type="button" onclick="test123()">click here for ajax Call</button>
</a>

因此,单击此按钮会将您发送到“ / donate / select-card”,但不会越过ajax。 出于同样的原因,一旦尝试使用POST,您将获得:

  

此路由不支持GET方法。支持的方法:POST

href优先,当路由需要POST时,它是GET。

确保删除用于调用ajax调用的html周围的所有链接和默认行为,然后根据需要使用GET或POST。