J'ai une table de données qui récupère les enregistrements de la base de données avec ajax. Je veux ajouter l'info-bulle d'édition comme jquery-datatables-editor extension à datatables mais gratuitement. Existe-t-il un plugin pour le faire? sinon, quelqu'un peut-il m'aider à le faire manuellement?
Voici mon code JavaScript:
$('#table_id').DataTable({
"serverSide": true,
"processing": true,
"ajax": function (data, callback, settings) {
$.ajax({
url: '/some url',
type: 'GET',
data: data,
success: function (data) {
console.log(data)
}
});
},
"columns": [{
"title": "edit",
"data": null,
"className": "center",
"defaultContent": '<a href = "" class = "editor_edit"> Edit </a> / <a href = "" class = "editor_remove"> Delete </a>'
}, {
"title": "name",
"data": "name"
}, {
"title": "id",
"data": "id"
},
]
});
Vous pouvez créer un bouton personnalisé dans datatable. Vous pouvez aller dans cette documentation pour savoir comment cela fonctionne. Maintenant, dans l'action, vous pouvez appeler une fonction à l'intérieur lorsque l'utilisateur clique dessus, le bouton appellera la fonction en javascript et fera ce que vous voulez à l'intérieur.
Voici un exemple de code.
$('#table_id').DataTable({
"serverSide": true,
"processing": true,
"ajax": function (data, callback, settings) {
$.ajax({
url: '/some url',
type: 'GET',
data: data,
success: function (data) {
console.log(data)
}
});
},
buttons: [
{ text: 'Add', name: 'btnAdd', action: function ( e, dt, node, config ) {
$.fn.addfunction();
}},
{ extend: 'selected', text: 'Edit', name: 'btnEdit', action: function ( e, dt, node, config ) {
$.fn.editfunction();
}},
{ extend: 'selected', text: 'Delete', name: 'btnDelete', action: function ( e, dt, node, config ) {
$.fn.deletefunction();
}},
],
"columns": [{
"title": "edit",
"data": null,
"className": "center",
"defaultContent": '<a href = "" class = "editor_edit"> Edit </a> / <a href = "" class = "editor_remove"> Delete </a>'
}, {
"title": "name",
"data": "name"
}, {
"title": "id",
"data": "id"
},
]
});
$.fn.addfunction = function(){
//Your code here
}
$.fn.editfunction = function(){
//Your code here
}
$.fn.deletefunction = function(){
//Your code here
}
J'ai ajouté l'idée de ce document à partir de tables de données qui crée un bouton personnalisé et crée et appelle une fonction dans jquery
Il existe également une autre façon d'utiliser et de donner l'ID du bouton. voici l'exemple:
$('#table_id').DataTable({
"serverSide": true,
"processing": true,
"ajax": function (data, callback, settings) {
$.ajax({
url: '/some url',
type: 'GET',
data: data,
success: function (data) {
console.log(data)
}
});
},
buttons: [
{ text: 'Add', name: 'btnAdd',
attr:{
id: 'btnAdd'
}},
{ extend: 'selected', text: 'Edit', name: 'btnEdit',
attr:{
id: 'btnEdit'
}},
{ extend: 'selected', text: 'Delete', name: 'btnDelete',
attr:{
id: 'btnDelete'
}},
],
"columns": [{
"title": "edit",
"data": null,
"className": "center",
"defaultContent": '<a href = "" class = "editor_edit"> Edit </a> / <a href = "" class = "editor_remove"> Delete </a>'
}, {
"title": "name",
"data": "name"
}, {
"title": "id",
"data": "id"
},
]
});
$(document).on('click', '#btnAdd', function(e)
{
e.preventDefault();
e.stopPropagation();
//your code here
});
$(document).on('click', '#btnEdit', function(e)
{
e.preventDefault();
e.stopPropagation();
//your code here
});
$(document).on('click', '#btnDelete', function(e)
{
e.preventDefault();
e.stopPropagation();
//your code here
});
Désolé pour beaucoup Edit J'espère que ça aide!