2015-04-05 32 views
0

我创建了一个画廊,用户通过ajax删除相册,我的问题是,当我点击“删除”按钮它的作品第一次,一切运行良好,文件夹和图片被删除,但是当我移动到第二张专辑并尝试删除它时,ajax让我成功,但是没有任何东西被删除!错误:功能犯规给我任何错误(在控制台)AJAX运行正常人一样......Gallery删除相册与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> 

这里的按钮(形式)是JS含文件AJAX

// 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

让你dataString这样dataString = '专辑:专辑'; – Saty 2015-04-05 13:15:41

+0

谢谢你的提升(我已经改变了它),但并没有真正解决我的问题:/ – 2015-04-05 13:37:24

回答

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