通过 Ajax 向控制器发送数据

Send data to controller via Ajax

我是 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) {
        alert($myvar);
    }
    </script>

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

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

您需要通过 AJAX 向服务器执行 XMLHTTPRequest。由于您正在使用 jQuery 作为 javascript 库,因此使用 post or ajax.

等函数可以轻松实现此类请求

你的HTML/template:

<button class="my_button" id="{{$photo->id}}" data-url="{{path('deletephoto')}}">Delete</button>

因此,在您的 javascript 函数中,使用如下内容:

function removeItem() {

     $('button.my_button').click(function(e){
            e.preventDefault();     
            var url = $(this).attr('data-url');
        var id = $(this).attr('id');
        $.ajax({
                            type: "POST",
                            url: url,
                            data: {id:id},
                            cache: false,
                            success: function(data){

                            }
                            });

        return false;
       });

    }

详情: 我们将数据属性添加到您的 HTML 按钮,它将包含您的路径,如果您使用 Twig 作为模板引擎,您可以这样写:

data-url={{path('path_delete')}}

但这取决于您的模板引擎和laravel路由方式。

然后使用 attr() jQuery 函数点击你的按钮:

var url = $(this).attr('data-url');

您可以应用相同的规则来获取您的 ID。

最后,您应该编写一个控制器,该控制器将获取带有 id 参数的 POST 请求并执行删除。您可以从控制器内的请求对象中获取您的 ID,例如:

if($request->isXmlHttpRequest())
      {
$id = (int)$request->request->get('id');

}