0

我正在尝试通过<li id='{$row['id']}'>它进行删除,但无法从 mysql 中删除记录,只会删除它的前端。是否可以通过定义 ID 来删除attr?这是我当前的代码:

PHP,(工作正常并删除多个字段)

$id = (int) $_GET['id'];
$sql = "DELETE FROM img_nav WHERE id = :id";
$sql = "DELETE FROM img_landing WHERE id = :id";
$sql = "DELETE FROM img_slider WHERE id = :id";

$stmt = $db->prepare($sql);
$stmt->bindParam(':id', $_GET['id'], PDO::PARAM_INT);   
$stmt->execute();

我的 jQuery/Ajax

jQuery(document).ready(function(){
  $(".deleteitem").click(function(){

    var parent = $(this).closest('li');
    var id = parent.attr('id');

    $.ajax({
      type: "POST",
      data: "id=" +id,
      URL: "delete.php",
      success: function(){
        $('#'+id).remove();
      }
    });
  });
});

HTML 标记,我用 PHP/PDO 回显内容:

<li id='{$row['id']}'>
<div class='imgHover'>
<div class='hover'>
<a href='#' ><img src='../img/delete.png'></a></div><img src='{$row['path']}'>
</div></li>

当直接链接到delete.php我没有问题时,它工作正常,只是用 ajax 发送 ID 就是问题所在。会不会是 MAMP 的问题?我没有远程测试过。

4

2 回答 2

0

问题在于您如何在服务器上检索数据。

type: "POST"

是您在 AJAX 调用中指示的内容,但在您执行的服务器上

$id = (int) $_GET['id'];

所以你永远不会捕捉到帖子。更改$_GET[]$_POST[]

笔记

只是一个小提示,如果您将其类型转换为(int),并发送一个分数/浮点数,它将向 0 舍入,而不是向上舍入。如此3.57_ (int)_3

于 2013-07-21T15:44:56.220 回答
0

如果您不知道应该使用 $_GET 或 $_POST,则可以使用 $_REQUEST。但是你认为这个查询有什么问题 $sql = "DELETE FROM img_nav WHERE id = :id"; 等等?程序知道这是什么吗?您应该尝试 $sql = "DELETE FROM img_nav WHERE id = '{$id}'"; 我认为它有效。

于 2013-07-21T16:33:02.650 回答