【问题标题】:How to get DELETE request parameters如何获取 DELETE 请求参数
【发布时间】:2013-09-25 20:12:04
【问题描述】:

这就是我想使用 jquery ajax 删除记录的方式

deleteFile: function(obj) {
        $.ajax({
            type: 'delete',
            dataType: 'json',
            url: 'service/lead.php?a=deleteFile',
            data: {id: $(obj).attr('data-lf-id')}
        }).done(function(response) {
            console.log("done");
        }).fail(function(error) {

        });
    }

这可行,但我应该如何在 lead.php 页面上获得 id 值?这是我目前正在做的,但它没有捕获 id 值。

//service/lead.php
if ($_SERVER['REQUEST_METHOD'] == "DELETE") {
    if ($_GET['a'] == 'deleteFile') {
        echo json_encode($lead->deleteLeadFile($_REQUEST['id']));
    }
}

【问题讨论】:

  • print_r($_GET) 显示什么?
  • 它只显示这个[a] => deleteFile
  • $(obj).attr('data-lf-id') 显示什么?另外,print_r($_REQUEST) 显示什么?
  • print_r($_REQUEST) 显示什么?
  • 这就是我要在数据库中匹配的id,然后删除该记录。我看到该值被发送到lead.php 页面。

标签: javascript php jquery ajax


【解决方案1】:

我建议将您的 Ajax 类型更改为“POST”或“GET”。然后您可以使用适当的 $_GET 或 $_POST 变量来检索您的 id。

deleteFile: function(obj) {
        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: 'service/lead.php?a=deleteFile',
            data: {id: $(obj).attr('data-lf-id')}
        }).done(function(response) {
            console.log("done");
        }).fail(function(error) {

        });
    }

//service/lead.php

if ($_GET['a'] == 'deleteFile') {
    echo json_encode($lead->deleteLeadFile($_POST['id']));
}

【讨论】:

    【解决方案2】:
    file_get_contents(“php://input”)
    

    这总是为您提供原始请求数据 - 您必须解析它[如果您发送 urlencoded 数据,则使用 parse_str,如果您发送 JSON,则使用 json_decode]。

    但是你应该保持它是 RESTful 的,而不是类似 RPC 的,并在 /resource/:id 上发出一个删除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 2015-05-01
      • 1970-01-01
      • 2017-03-10
      • 2017-05-04
      • 2021-12-19
      相关资源
      最近更新 更多