2017-03-09 140 views
0

在我的HTML,PHP表後刪除錶行:無法阿賈克斯成功

<tr id="idrow"> 
       <td><?php echo $user_id; ?></td> 
       <td ><?php echo $user_name; ?></td> 
       <td> 
        <input type="button" class="btn btn-danger btn-xs delete " value="Cancella sin id" onclick="deleteFunction(<?php echo $user_id; ?>)"/> 
       </td> 
</tr> 

有一個按鈕,通過Ajax調用,刪除SQL行使用id字段。 我的問題是關於更新表成功後:

我的js代碼:

function deleteFunction(valor) { 

    var $tr = $('#datatable-id').closest('tr'); 
    var id = valor; 
    var parametros = { 
        "id"  : id 
      }; 
      console.log(parametros); 


      $.ajax({ 
       type: "POST", 
       url: "deleteTabla.php", 
       data: parametros, 
       success: function(result){ 

            //$("#idrow").remove(); 
            $tr.remove(); 

       }, 
       error: function() { 
        console.log('ajax error'); 
       } 

       }); 
} 

使用$("#idrow").remove(),第一行被刪除,而不是按鈕相關的一個。

我想訣竅是在var $tr = $('#datatable-id').closest('tr');,對tr標籤的引用?

任何幫助表示讚賞。

+0

你想擦除什麼? – Larpee

+0

html表格行。 – doxsi

回答

1

如果我理解正確的話,每一行都有相同的ID(idrow)。這是你的第一個錯誤。在整個頁面中,Ids必須是唯一的。唯一的ID創建的行並把它傳遞給函數:

<tr id="idrow_<?php echo $user_id; ?>"> 
    ... 
    <td> 
     <input type="button" onclick="deleteFunction('<?php echo $user_id; ?>')"/> 
    </td> 
</tr> 

在你的功能,只是這樣做:

function deleteFunction(valor) { 
    ... 
    $('#idrow_'+valor).remove(); 
    ... 
} 
0

試試這個

<tr id="idrow_<?= $user_id ?>"> 

而且成功:

$("#idrow_" + valor).remove(); 
1

最接近tr#datatable-id永遠是第一行。 如果您想刪除特定的行,請嘗試分配一個ID。

<tr id="<?php echo $user_id;?>"> 
    .... 
</tr> 

然後在功能:

function deleteFunction(valor) { 
    var $tr = $('#' + valor); 
    // delete after request is success 
    $tr.remove() 

} 
0

更改您的選擇在函數的開頭這樣:var $try = $("#idrow")