1

截屏:在此处输入图像描述

我想使用 jQuery 从数据库中删除行,如屏幕截图所示。我观看了 150 多篇关于 jQuery 的教程。不过我是菜鸟。我知道 jquery post 的用法。但我无法完全处理它。

<script type="text/javascript">
                        $('#cart_delete_button').click(function(){
                            var deleteditems = $('input:checkbox[name="delete_cart[]"]:checked')
                                    .map(function() { return $(this).val() })
                                    .get()
                                    .join(",");
                           //alert(deleteditems);
                           $.post('post.php',{deleteditems: deleteditems},function(data){
                               $('.loading').text(data);
                           });
                        });
                    </script>

我写了这段代码来删除,但我想立即删除 tr 。我怎样才能做到这一点?

4

3 回答 3

1

相当艰巨的工作,尤其是在提供较少信息的情况下。但总得有人去做……无论如何……

第一的,

1)您必须使用数据库中的值填充表。2)在构造时,将每行的DATABASE ID分配给checkbox元素。

当您单击复选框时,获取所选复选框的 ID 并通过 $.ajax 将其传递到数据库并在那里执行删除操作...

问题不完全是 jQuery。PHP 和 jQuery 都需要以某种有趣的方式来使用。再多的 DVD 观看和书籍阅读都不会帮助您。你必须弄脏你的手。

另外,首先想想你想做什么。列出所有用例,确定一个坚定的方法,然后开始编写代码。从长远来看,它有帮助。

如何解决问题?

假设您正在使用从服务器以 JSON 格式返回的数据构建表。

假设你的 JSON 是

var json =  {
        "data": [
            {
                "itemID": "1",
                "itemName": "Item Name1"
            },
            {
                "itemID": "2",
                "itemName": "Item Name2"
            }
        ]
    }

在构建你的桌子时,

当你创建一个复选框时,它就像

for(var i=0;i<json.data.length;i++){
var cBox = jQuery("<inout />",{type="checkbox",id=json.data[i].itemId});
$("#yourTargetID").append(cBox);
}

check处理程序附加到这些元素以进行 ajax 调用。

喜欢

$("#cBoxId").on('click',function(){
    if($(this).attr('checked'=='checked')){
        $.post('yourphpfile.php',{data:$(this).attr(id)},function(data){
            if(data==1){
                $(this).parent().parent().remove(); // just a placeholder as I do not know your exact DOM structure.
            }else {
                alert("Something went wrong");
            }
        });
    }
});

在你的 PHP 上

$id = $_POST['data'];

$query = "DELETE FROM tablename WHERE itemId = $id";
$result = mysql_query($query);

if($result){
    echo 1;
}
else {
    echo 0;
}
于 2012-07-28T10:40:20.220 回答
0

使用例如 PHP 生成 html 时 - 您从数据库中获取行并使用主键列值将 ids 分配给复选框,之后您使用:

$('input[type=checkbox]').bind('change', function() {
  $.ajax({
    type: 'POST',
    url : 'delete.php',
    data : {row_id: $(this).attr('id')},
    success : function() {
      $(this).closest('tr').remove(); //or whatever html you use for displaying rows
    }
  });
});

在 delete.php 中:

$id = $_POST['row_id'];
if (mysql_query("DELTE FROM TABLE WHERE id = $id")) echo 'OK';
else echo 'FAIL'
于 2012-07-28T11:03:09.510 回答
0

为此,我建议使用 jqGrid(或任何其他基于 jquery 的网格)。它非常简单明了。

是基于 Spring 的管理的教程。

希望能帮助到你。

于 2012-07-28T10:37:28.357 回答