使用ajax的Gallery删除专辑第二次失败

时间:2015-04-05 13:11:48

标签: php jquery ajax

我创建了一个用户通过ajax删除相册的画廊,我的问题是,当我点击“删除”按钮时,它第一次运行,一切运行正常,文件夹和图片被删除,但当我转到第二张专辑并尝试删除它,ajax给了我成功但是没有被删除!错误:函数不会给我一个错误(在控制台中)ajax运行正常......

以下是触发ajax的按钮(表单)

<form action='' method='post'>
<input type='hidden' id='album' name='album' value='$albid'>
<center><input type="submit" class="javagalleryAlbumDeleteBtn" name="createAlbum" value="Delete Album"></center>
</form>

这是包含ajax

的js文件
// CHECK THAT DOCUMENT IS READY
$(document).ready(function() {

// This is the button we are looking for.
$('.javagalleryAlbumDeleteBtn').click(function() {

// Get values from form
var album = $("#album").val();

// Put the vars in a string
var dataString = 'album='+album;

    $.ajax({
            type: "POST",
            url: "../gallery/deleteAlbum.php",
            data: dataString,
            cache: false,
            success: function(data){console.log(data);},
            error: function(jqXHR, textStatus, errorThrown) {console.log(textStatus, errorThrown););

    }// End success

    }); // End ajax

    return false; // avoid to execute the actual submit of the form.

    }); // End #login click

    }); // End document ready

这是deleteAlbum.php文件

$getalbumid = $_POST['album'];

$sql = mysql_query("SELECT gallery_address FROM users_galleries WHERE gallery_id = '$getalbumid'") or die(mysql_error());
list($galaddress) = mysql_fetch_row($sql);

if(mysql_num_rows($sql)){

// delete the pictures in the DB
mysql_query("DELETE FROM pictures WHERE picalbum = '$getalbumid' AND picowner = " . $_SESSION['id'] . "")or die(mysql_error());

// delete the album from the DB
mysql_query("DELETE FROM users_galleries WHERE gallery_id = '$getalbumid' AND gallery_userid = " . $_SESSION['id'] . "  LIMIT 1")or die(mysql_error());

// Function that deletes all content in folder and the folder
folderDelete($galaddress);

} // end delete

1 个答案:

答案 0 :(得分:1)

首先,您的HTML页面不能包含具有相同ID的元素,因此请使用以下格式:

<form action='' method='post'>
   <input type='hidden' id='album' name='album' value='$albid'>
   <center><input type="submit" class="javagalleryAlbumDeleteBtn" name="createAlbum" value="Delete Album"></center>
</form>

尝试改变课程。在JS中:

// Get values from form
var album = $(this).closest('form').find('.album').val();

这将帮助您将相册ID的正确值发送到服务器端。

第二件事 - 看一下MySQL注入文章 - http://www.tizag.com/mysqlTutorial/mysql-php-sql-injection.php