2016-04-11 9 views
0

私はすでにここでたくさん読んでいますが、私は解決策を見つけることができません!私はdatatableと内部の1つの列を編集ボタンがあります。ユーザーが編集ボタンをクリックすると、モーダルが表示され、ユーザーはデータテーブルから項目を変更できます。フォームが提出されると、データベース内で変更が行われます。dataTable - フォーム提出後のリロードテーブル

ここでは、ページをリロードしながらテーブルを自動的に更新したいと思います。それをどうすれば実現できますか?私の成功メッセージの中で何を呼ぶ必要がありますか?ここで

は私のコードです:

のindex.php:

if ($savetodo=="true") { 
    $content=array("descr"=>$descr); 
    updateToDoInfo($id,$content); 

} 

AJAXは提出:

   <script> 
        $(function() { 
         $('#form_edittodo').on(\"submit\", function(event) { 
          event.preventDefault(); 

          $.ajax({ 
           url: 'index.php', 
           type: 'post', 
           data: $(this).serialize(), 
           beforeSend: function(){ 
             $('#loading').show(); 
            }, 
            complete: function(){ 
             $('#loading').hide(); 
            }, 
           success: function() { 
            // What should I enter here? 
          }); 
         }); 
        }); 
       </script> 

のDataTable:誰かが助けることができるかどうか

<script> 
    $(document).ready(function() { 
     $('#todolist12').DataTable(); 
    }); 
    </script> 

は素晴らしいことです私を出す。

+0

"データテーブル"について話しているときにjquery dataTablesプラグインを使用していることを意味していますか? – Adam

+0

はい、正確です!ごめんなさい。 –

+0

成功/完了関数でデータテーブルを再描画するだけです:$( '#todolist12')。DataTable()。fnDraw(); –

答えて

1

dataTables data()メソッドを使用してセルを更新する必要があります。しかし、あなたはまた、DataTableのは、()メソッドを描く起動する必要があり、実際にあなたのウェブページに表示されるように変更するために

success: function() { 
    $('#todolist12').DataTable().cells("#idOfChangedCell").data("Update to cell"). 
} 

たとえば、あなたは成功機能は次のようなものを見たいと思うかもしれません。

$('#todolist12').DataTable().draw(); 
+0

ご協力ありがとうございます!私のデータテーブルは、私のデータベースからのエントリで動的に作成されます。 「#idofchangedCell」の代わりに何を入力すればよいですか?助言がありますか? –

+0

それは私の手の中から一種のものです。それは単にあなたの声明の仕組みの構造を示すことでした。変更されたセルを見つけるために必要なセレクターを知るためにテーブルがどのように構築されているのかわかりません。 – Adam

0

あなたはページをリロードするためにlocation.reload()を実行できます。

ページをリロードする必要がない場合は、表をajaxにロード可能にする必要があります。本当に滑らかになるためには、単一の行を読み込むことができます。

保存リクエストの新しい行を返信して、新しいマークアップでテーブルを更新することもできます。

または、JavaScriptテンプレートを使用してクライアント上のデータをレンダリングし、レコードをjsonとして返すことができます。

あなたにはさまざまなオプションがありますが、適切なソリューションを決定するのは開発者の判断に委ねられます。 location.reload()以外の問題を解決する行は1行も数行もありません。それはあなたのアプリが今どのように書かれているか、あなたがしたいことをするためにそれを修正する方法に依存します。

+0

あなたのコメントをありがとうが正直言って、それは私を助けてくれない!私は多くのオプションがあることを知っているが、私が言ったように、変更がデータベースで行われたら、私のテーブルだけをリロードしたい。だから、私はajaxコードの "成功"の部分のための解決策または関数を探しています! –

関連する問題