我创建了一个用户通过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
答案 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