如果成功= 2消息出现,如何删除数据库行?

时间:2012-05-16 10:28:07

标签: php javascript jquery dom

更新:

这就是我想要的解决方案。当用户单击“取消”按钮时,它将尝试查找将要取消的文件的文件名,然后删除包含该文件名的数据库行。

问题在于它没有识别文件名,因为它声明imagecancelname=undefined。由于这是未定义的,因此无法删除包含文件名的数据库行,因为它无法识别文件名。

所以问题是如何让imagecancelname识别要取消的文件的名称,以便它可以用来删除包含文件名的数据库行? / p>

以下是当前的表单代码:

var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='return startImageUpload(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'></p>" +
  "<iframe class='upload_target' name='upload_target' src='#' style='width:0;height:0;border:0px;solid;#fff;'></iframe></form>");

下面是startImageUpload函数,它在文件上传时显示取消按钮,如果用户点击取消按钮,它包含取消按钮功能:

function startImageUpload(imagecancelname){

        $('.imagef1_cancel').eq(window.lastUploadImageIndex).html('<div><button type="button" class="imageCancel" image_cancel="' + imagecancelname + '">Cancel</button></div>'); 

            $('.imagef1_cancel').eq(window.lastUploadImageIndex).find(".imageCancel").on("click", function(event) {
                var image_cancel = $(this).attr('image_cancel');

              var url = 'cancelimage.php';
window.location=url+"?imagecancelname=" + image_cancel;

});       
      return true;
}

最后下面是cancelimage.php脚本,当用户点击“取消”按钮时,它将导航到此脚本,这是使用脚本通过使用$ GET方法查找文件名来删除数据库行的位置。

    <?php

    ... connected to DB

    $image_cancel = $_GET["imagecancelname"];

            $imagecancelsql = "DELETE FROM Image 
            WHERE ImageFile = 'ImageFiles/". mysql_real_escape_string($image_cancel)."'";

        mysql_query($imagecancelsql);

        mysql_close();


?>

1 个答案:

答案 0 :(得分:0)

在javascript中你可以添加一个额外的php文件来删除数据库中的一行。

在你的js中添加它(当你删除时):

window.location=url+"?"+id;

url = php文件所在的路径

id =您要删除的行ID

然后添加一个php文件来进行数据库操作

<?php
    $imagecancelsql = "DELETE FROM Image 
               WHERE ImageFile = 'ImageFiles/".
               mysql_real_escape_string($_FILES['fileImage']['name'])."'";
    mysql_query($imagecancelsql);

Id是一个参数,您需要从javascript传递参数。 例如: 如果要删除名称为black的图像,请传递 在Javascript中:

var image = 'black';
window.location=url+"?id="+image;

稍后在php文件中使用:

获取id的值
$image = $_GET['id'];

然后执行您的查询:

$imagecancelsql = "DELETE FROM IMAGE WHERE IMAGEFILE = $image";