2014-10-10 40 views
0

我有一個表中包含一個數組中的每個元素的行。我試圖在點擊刪除圖像時刪除元素(圖像的ID爲deleteRowButton)。此刻,當你點擊圖片,但是如果我刪除var index線,該錶行將淡出預期(但當然數組元素不會刪除沒有任何反應。從會話數組中刪除項Jquery Ajax

$(document).on('click', '#deleteRowButton', function() { 
    var index = $(this).closest('tr').attr(id); 
    //Set index to the id of table row (number corresponding to their position in the array) 
    remove_index(index); 
    $(this).closest("tr").fadeOut('slow'); 
    return false; 
}); 

function remove_index(value) { 
    $.post("./remove_array_item.php", {index:value}); 
}  

這裏是我的代碼remove_array_item.php刪除數組元素:

<?php 
include("./config/init.php"); //Contains session_start() etc. 

$index = $_POST['index']; //index variable passed in 
$ca = $_SESSION["objColl"]; //get array from session variable 
$ca->delLineItem($index); //delete item of array at index 
$_SESSION["objColl"] = $ca; //store array as session variable 
?> 

所以我想知道的是:

  1. 爲什麼jQuery的功能停止射擊,如果我有:

var index = $(this).closest('tr').attr(id);

即,如果我註釋掉,該功能將使錶行淡出。

  • 因爲即使當我刪除var index,只是傳遞一個值,該指數像這樣
  • remove_index(1);

    什麼是錯我的remove_array_item.php功能它仍然不會從數組中刪除項目,所以當我刷新頁面時,該項目回到表格中。

    回答

    1

    var index = $(this).closest('tr').attr(id);更改爲var index = $(this).closest('tr').attr('id'); 您忘記了id附近的引號。

    1

    我想你犯了一個錯誤,將點擊事件綁定到一個Id,因爲你將有多行。 你需要分享HTML來澄清這個問題。

    瘋狂的猜測。將#deleteRowButton(id)更改爲.deleteRowButton(class)。

    另請注意,attr()函數只接受字符串作爲參數。

    $(this).closest('tr')。attr(「id」);