1

Screenshot: enter image description here

I want to delete rows from database with jQuery as on the screenshot. I watch more than 150 tutorials about jQuery. But I'm rookie. I know the usage of jquery post. But I couldn't handle it exactly.

<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>

I wrote this code for deleting but I want to remove tr instantly. How can I do that?

4

3 に答える 3

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;
}
于 2012-07-28T10:40:20.220 に答える
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'
于 2012-07-28T11:03:09.510 に答える
0

この目的のために jqGrid (またはその他の jquery ベースのグリッド) を使用することをお勧めします。その非常にシンプルで簡単です。

これは、Spring ベースの管理のチュートリアルです

それが役に立てば幸い。

于 2012-07-28T10:37:28.357 に答える