2012-10-19 36 views
0

我目前正在使用HTML制表的记录,记录来自数据库和该表的末尾部分,我有一些操作,编辑删除SHOW,我已经完成了编辑,这与我的DELETE不同,我的DELETE操作是使用ajax完成的,但问题是我无法正确获取每个按钮的值,其中包含来自数据库。如何使用jQuery/Javascript/PHP删除HTML表中的记录

这是表的一部分,其中的删除按钮位于:

<td width="61"><button id="delete" value="<?php echo "$arr[0]"; ?>">Delete</button></td> 

这是jQuery的部分

$("#delete").click(function(){ 
    alert($("#delete").val()); <-- CAN"T GET THE CORRECT ID 
    //AJAX PART HERE 
}) 

的问题是,我不能得到正确的价值我按下的按钮,我如何做到这一点,任何建议,非常感谢。

这是表的整个视图,

enter image description here

+0

应该'“$ arr [0]”'包含数据库的ID? –

回答

6

没有测试,但我相信这个问题是,你试图让所有的比赛的val()#delete,这可能是所有的删除按钮(我不知道,没有看到你生成的HTML )。

你应该实际使用的一类delete.delete而不是id选择,作为id,根据HTML规范应该是指一种独特的元素。

$("#delete").click(function(){ 
    // note the use of `this` to refer to clicked object, rather than all delete buttons 
    alert($(this).val()); 
    //AJAX PART HERE 
}) 
+0

ohhh划伤最后的评论,改变ID为类的作品很好,是的,我认为jquery的选择器选择了与该ID的所有按钮和类似于你说的东西:D tnx人 – lemoncodes

+1

所以不要使用' ID'为几个元素,使用'class',看到更新! –

0

首先,在编写服务器端删除的方法,像delete.php,返回状态,像“错误”和“成功”

$("#delete").click(function(){ 
    var id = $(this).attr('id'); 
    //AJAX PART HERE 
    $.get('delete.php?id=xxx',function(status){ 
     if (status == 'success') $(this).parent().remove(); 
    } 
}) 
0

只要使用jQuery的“本”,以中访问按钮功能...

eg

alert($(this).val()); 
+0

有点缓慢的回应...比利说:-) – pswillies

0

按钮的价值是什么显示在它的文本替换

alert($("#delete").val()); <-- CAN"T GET THE CORRECT ID 

,但不会让你的表的ID。此外,由于有几个删除按钮,请使用类而不是id。

更改您的HTML代码,这样的事情,用所谓的“DB-ID”的自定义属性,通过它,你会发现要删除的记录:

<input class="delete" db-id="<?=$db-id?>" value="Delete"/> 

然后,你的JS代码可以被调整像这样:

$(".delete").click(function(){ 
    var dbid = $(this).attr('db-id'); 
    $.ajax({ 
     type: 'POST', 
     url: 'script-url/here.php' 
     data: 'id=' + dbid, 
     success: function(feedback){ 
      if(success==true) $('tr[db-id="' + dbid + '"]').delete 
     } 
    }).error(){ 
     alert('Something went horribly wrong!'); 
    }; 
}) 

注意的是,在成功的功能,你甚至可以使与数据的行消失使用.delete()

另外请注意,任何m个好的用户将能够在浏览器中编辑按钮的db-id,因此请在php脚本中采取所有必要的预防措施和验证!

0

试试这个:

$("button[id=delete]").click(function(){ 
     $(this).closest('tr').remove(); // Delete row 
     alert($(this).attr('value')); // ID 
    }); 

按钮[ID =删除] - 因为你有相同的ID许多按钮,更好地利用CSS类...

0

确定这里是您的解决方案:

1)insted id =“delete”使用类。像这样:

<td width="61"><button class="delete" value="<?php echo "$arr[0]"; ?>">Delete</button></td> 

2)你的jQuery应该是:

$(".delete").click(function(){ 
    alert($(this).val()); <-- CAN"T GET THE CORRECT ID 
    //AJAX PART HERE 
}) 

这应该提醒propper ID,我proposee这个mehoded进行编辑,并显示诉权....