2017-12-12 9 views
2

私は作業中のJavascriptで新しく、私は自分のテーブル用にDataTables.jsを使用しています。いくつかの管理Butons(編集、削除、公開)を追加する必要がありますので、それらを列に追加しました。DataTable.JS列のdefaultContentにデータを渡す方法

これらのボタンを機能させるには、data-targetの最初の行であるテーブルのidを渡す必要があります。

私は成功せずにこのコードを試してみました:

"columns": [ 
     { "data" : "id" }, 
     { "data" : "status" }, 
     { "data" : "opened_at" }, 
     { "data" : "last_answer" }, 
     { 
      "data": null, 
      "defaultContent": '<button id="actionButton" type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Aktion</button><div class="dropdown-menu" aria-labelledby="actionButton"><a class="dropdown-item" data-toggle="modal" data-target="#ticketModal'+data[0]+'" href="#">Ticket öffnen</a><a class="dropdown-item" href="#" onclick="reopenTicket('+data[0]+')">Ticket neu öffnen.</a><a class="dropdown-item" href="#" onclick="closeTicket('+data[0]+')">Ticket schließen</a><a class="dropdown-item" href="#">Ticket löschen</a></div>', 
      "targets": -1 
     } 
    ] 

お知らせ:"defaultContent":

data-target="#ticketModal'+data[0]+'" 

を。

このdata-targetの行のIDを渡す必要があります。

これはどのように可能ですか? data[0]は機能しませんが、それはどのように動作しますか? 私はボタンのいずれかをクリックしたときに呼ばれている作業の関数を作るためにIDが必要になります。

function closeTicket(id) { 
    var url = "api.php?closeTicket="+id; 

    http = new XMLHttpRequest(); 
    http.open("GET", url, true); 
    http.send(null); 
    location.reload(); 
} 


<a class="dropdown-item" href="#" onclick="closeTicket('+data[0]+')">Ticket schließen</a> 

答えて

1

は、このコードを試してみてください。

"columns": [ 
     { "data" : "id" }, 
     { "data" : "status" }, 
     { "data" : "opened_at" }, 
     { "data" : "last_answer" }, 
     { 
      "data": null, 
      render:function(data, type, row) 
      { 
       return '<button id="actionButton" type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Aktion</button><div class="dropdown-menu" aria-labelledby="actionButton"><a class="dropdown-item" data-toggle="modal" data-target="#ticketModal'+data[0]+'" href="#">Ticket öffnen</a><a class="dropdown-item" href="#" onclick="reopenTicket('+data[0]+')">Ticket neu öffnen.</a><a class="dropdown-item" href="#" onclick="closeTicket('+data[0]+')">Ticket schließen</a><a class="dropdown-item" href="#">Ticket löschen</a></div>'; 
      }, 
      "targets": -1 
     } 
    ] 
+0

は私のために動作しません:(ゲッティン 'キャッチされません。 SyntaxError:予期しない文字列 'Error。Nevermindは、' render function'の後に '、'を忘れました。ありがとうございました:) – KushGene

関連する問題