从数据库中删除多个邮箱复选框值

时间:2012-07-28 10:29:34

标签: jquery sql database post

屏幕截图:enter image description here

我想用jQuery删除数据库中的行,如截图所示。我观看了超过150个关于jQuery的教程。但我是菜鸟。我知道jquery帖子的用法。但我无法准确处理它。

<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。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

非常艰巨的工作,特别是在提供较少信息的情况下。但有人必须这样做...... 总之...

首先,

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

当您单击复选框时,获取所选复选框的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;
}

答案 1 :(得分:0)

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

Here是基于Spring的管理教程。

希望它有所帮助。

答案 2 :(得分:0)

使用例如PHP生成html时 - 使用后,您可以从DB获取行并使用主键列值将ID标记为复选框:

$('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'