2017-03-09 71 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")