php - 单击取消按钮后如何删除数据库行

标签 php javascript jquery ajax dom

我想在用户单击取消按钮时删除包含文件名的数据库行。问题是它没有删除数据库行。我做错了什么,数据库行没有被取消?

下面是该表单的相关代码:

var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='return imageClickHandler(this);' class='imageuploadform' >" + 
  "Image File: <input name='fileImage' type='file' class='fileImage' /></label><br/><br/><label class='imagelbl'>" + 
  "<input type='submit' name='submitImageBtn' class='sbtnimage' value='Upload' /></label>" +     
  "</p><p class='imagef1_cancel' align='center'><label>" + 
  "<input type='button' name='imageCancel' class='imageCancel' value='Cancel' /></label>" +
  "<iframe class='upload_target' name='upload_target' src='#' style='width:0;height:0;border:0px;solid;#fff;'></iframe></form>");

下面是 startImageUpload() 函数,它启动文件上传并存储取消按钮函数:

  function startImageUpload(imageuploadform, imagefilename){
    $('.imagef1_cancel').eq(window.lastUploadImageIndex).find(".imageCancel").on("click", function(event) {
      return stopImageUpload(2);
      });     
    return true;
  }

下面是 stopImageUpload() 函数,它使用 success 和 result 显示取消消息:

function stopImageUpload(success, imagefilename){
  var result = '';
  if (success == 2){
    result = '<span class="imagecemsg"> The file upload was canceled!</span><br/><br/>';
  } else {
    result = '<span class="imageemsg">There was an error during file upload!</span><br/><br/>';
  }         
  return true;   
}

最后是 imageupload.php 脚本,它使用 iframe 链接到 QandATable.php(包含上面代码的脚本),这就是应该从中删除数据库行的位置:

<?php
  session_start();
  ...//connected to DB
  $result = 0;

  if ($result == 2) {
    $imagecancelsql = "DELETE FROM Image 
                       WHERE ImageFile = 'ImageFiles/".
                       mysql_real_escape_string($_FILES['fileImage']['name'])."'";
    mysql_query($imagecancelsql);
  }
  mysql_close();
?>
<script language="javascript" type="text/javascript">window.top.stopImageUpload(<?php echo $result ? 'true' : 'false'; ?>, '<?php echo $_FILES['fileImage']['name'] ?>');</script>

最佳答案

在 imageupload.php 中您声明:

$result = 0;

然后你说:

if ($result == 2)...

$result 是 0 而不是 2,因此查询不会被执行。

关于php - 单击取消按钮后如何删除数据库行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10606925/

相关文章:

javascript - 防止AJAX表单提交两次?

php - 搜索获取/发布双重数据提交的解决方案

php - 如果数据库列为空 symfony 2,则过滤数组

php - 迁移到 Laravel 破坏了用户表上的密码字段,该字段曾经是 32 个字符长

javascript - IIS 的 web.config 设置是否会干扰 ServiceWorker 缓存?

javascript - Chrome : Page action not working

javascript - 在 Rails 中对 Controller 操作进行 ajax 调用

jquery - 无法在留有边距的情况下为我的 div 设置动画

java - 使用从 Java 应用程序到 Mysql Workbench 的直接连接?或者在两者之间创建一个 Php/Java 服务器来传递数据?

PHP 仅在成功提交后表示感谢