【问题标题】:Send data to controller using AJAX使用 AJAX 向控制器发送数据
【发布时间】:2015-04-16 02:20:58
【问题描述】:

我是 Ajax 的新手,我正在使用 laravel,现在我想要一个删除按钮,它将我想要删除的项目的 id 发送到控制器。这是我的代码。

观看次数

<div class="row">
@foreach($photos as $photo)
  <div class="col-xs-3 col-md-1">
    <button onclick="removeItem({{$photo->id}}); return false;">Delete</button>   
  </div> 
@endforeach
</div>

这是我的脚本

<script type="text/javascript">
function removeItem($myvar) {
  $.ajax({
    type : "POST",
    url : "deletephoto",
  );}
}
</script>

我想把这个发送到这条路线

Route::post('deletephoto','GamefarmsController@deletephoto');

在我的控制器上,我想这样做只是为了测试它是否工作

public function deletephoto()
{
    dd($myvar);
}

【问题讨论】:

  • 您没有在removeItem() 中发出ajax 请求。阅读documentation
  • 哦,抱歉,误贴了代码
  • 问题是什么?什么不工作?
  • 我只想将数据发送到我的控制器。我这样做是为了测试它 dd($myvar);
  • 编辑您的问题并为removeItem()添加您的真实代码

标签: php jquery laravel web blade


【解决方案1】:

您必须将变量 $myvar 添加到 $.ajax() 函数的数据属性中:

$.ajax({
    type: "POST",
    url: "deletephoto",
    data: { myvar: $myvar }
})

然后在您的控制器中,您可以通过以下方式获取此变量的值:

Input::get('myvar'); // for Laravel 4.x
Request::input('myvar'); // for Laravel 5

【讨论】:

  • 谢谢你先生去试试
  • 先生,我试过了,但屏幕上没有显示芯片和转储
  • 你得到一个成功的响应(200)吗?可能是网址不对?
  • 网址是对的 我得到了这条路线 Route::post('deletephoto','GamefarmsController@deletephoto');
  • @jakebalba 您不会在屏幕上看到响应,您只能在 javascript 控制台中看到它 - 因为 AJAX 不会刷新页面。您必须向页面发送响应,然后 console.log() 它。
【解决方案2】:

试试这个:

<script type="text/javascript">
function removeItem(myvar) {
$.ajax({
    type : "POST",
    url : "deletephoto",
    data: { 'myvar' : myvar },
    success: function(res) {
        console.log(res);
    }
)};
}
</script>

在你的 routes.php 文件中:

Route::post('deletephoto', array(
    'as' => 'deletephoto',
    'uses' => 'GamefarmsController@deletephoto');
));

在您的控制器中:

public function deletephoto() {
    //dd($myvar);
    return Input::get('myvar');
}

这将返回传递的任何变量,并将其发送回 AJAX 调用,然后在控制台中输出。

最后:

<button onclick="removeItem({{$photo->id}});">Delete</button>   

【讨论】:

  • 在控制台出现第一个错误 SyntaxError: missing } after property list
  • 当我点击按钮时,我得到了这个 ReferenceError: removeItem is not defined
  • @jakebalba 请查看更新后的答案,同时注意 JQuery/Javascript 的变化
  • @jakebalba 抱歉,忘记从参数中取出$
  • @jakebalba try removeItem({{ $photo-&gt;id }}); 注意括号和变量之间的空格
猜你喜欢
  • 2023-03-20
  • 1970-01-01
  • 2017-04-29
  • 1970-01-01
  • 2016-08-02
  • 2019-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多