在php中使用ajax删除记录而不刷新页面

在php中使用ajax删除记录而不刷新页面,php,javascript,jquery,ajax,cakephp,Php,Javascript,Jquery,Ajax,Cakephp,我正在开发Cakephp 2.x,但我认为问题与Cakephp无关。我想在不刷新页面的情况下删除文件 HTML/PHP: <div class = "success" style="display:none;">Deleted successfully </div> <div class = "error" style="display:none;">Error </div> <a href="javascript:void(0)

我正在开发Cakephp 2.x,但我认为问题与Cakephp无关。我想在不刷新页面的情况下删除文件

HTML/PHP:

<div class = "success" style="display:none;">Deleted successfully </div>
<div class = "error" style="display:none;">Error  </div>    

<a href="javascript:void(0)" class="button icon-trash" title = "delete" onclick="openConfirm('<?php echo $filename; ?>','<?php echo $idImage; ?>');"></a>
function openConfirm(filename, idImage) {
    $.modal.confirm('Are you sure you want to delete the file?', function () {
        deleteFile(filename, idImage);
    }, function () {

    });
};

function deleteFile(filename, idImage) {
    var filename = filename;

    $.ajax({
        type: "POST",
        data: {
            idImage: idImage
        },
        url: "http://localhost/bugshot/deleteFile/" + filename,
        success: function (data) {
            if (data == 1) {
                $(".success").fadeIn(500).delay(2000).fadeOut(500);
            } else {
                $(".error").fadeIn(500).delay(2000).fadeOut(500);
            }
        },
        error: function () {
            alert("error");
        }
    });
}
foreach循环中的我的图像 此代码正在显示图像

foreach($file作为$files):?>


删除链接

    <a href="javascript:void(0)" class="button icon-trash" title = "deleteImage" onclick="openConfirm('<?php echo $files['Image']['filename']; ?>','<?php echo $files['Image']['idImage'];; ?>');"></a>


代码工作得很好,除了删除图像或记录后,记录/图像仍然显示在页面上,直到刷新为止。如何修复此问题?

您需要使用javascript将其删除

$.ajax({
        ...
        success: function (data) {
            if (data == 1) {
                $(".success").fadeIn(500).delay(2000).fadeOut(500);
                $('img[src="/pathToImg/' + filename + '"]').remove(); // Remove by src
                // $('#' + idImage).remove(); // Remove by ID.
            } else {
                $(".error").fadeIn(500).delay(2000).fadeOut(500);
            }
        }
        ...
    });

注意:
var filename=filename不表示任何内容,因为您正在将文件名参数指定给具有相同名称的新变量。您可以将其删除。

$('.image_或_file_selecor).hide();在ajax上试试这个success@IgnatB. 图像在foreach循环中。。。我的意思是页面上有多个图像..如果我以你的方式这样做,那么它也会隐藏其他图像。。你不觉得吗?你应该考虑使用蛋糕的Jelpple中的链接函数,for循环是什么样子的?实际图像是如何显示的?@putvande我已经更新了我的问题。路径是私有的。。没有人可以访问该图像。。图像与特定用户关联。。。那么我如何在这里给出路径$('#'+idImage').remove();我想用这个方法,但是我应该在这里写什么而不是散列“#”谢谢…我已经用你的方法写了。。。谢谢,没问题。我是来帮忙的。:)
$.ajax({
        ...
        success: function (data) {
            if (data == 1) {
                $(".success").fadeIn(500).delay(2000).fadeOut(500);
                $('img[src="/pathToImg/' + filename + '"]').remove(); // Remove by src
                // $('#' + idImage).remove(); // Remove by ID.
            } else {
                $(".error").fadeIn(500).delay(2000).fadeOut(500);
            }
        }
        ...
    });