http://codersfolder.com/2016/07/crud-with-php-mysqli-bootstrap-datatables-jquery-plugin/
Lo estoy aplicando correctamente, lo que me sucede es que en la web tengo varias tablas, y en este ejemplo, desde el archivo .js donde están las funciones para el crud, llama a un archivo php diferente para cada acción, y me gustaría agruparlos en un único archivo en funciones y ejecutar la funcion php que corresponda.
Os paso los ejemplos de de al cargar la pagina y al editar:
Código:
var manageMemberTable; $(document).ready(function () { manageMemberTable = $("#manageMemberTable").DataTable({ "ajax": "php_action/retrieve.php", "order": [] }); $("#addMemberModalBtn").on('click', function () { // reset the form $("#createMemberForm")[0].reset(); // remove the error $(".form-group").removeClass('has-error').removeClass('has-success'); $(".text-danger").remove(); // empty the message div $(".messages").html(""); // submit form $("#createMemberForm").unbind('submit').bind('submit', function () { $(".text-danger").remove(); var form = $(this); // validation var name = $("#name").val(); var address = $("#address").val(); var contact = $("#contact").val(); var active = $("#active").val(); if (name === "") { $("#name").closest('.form-group').addClass('has-error'); $("#name").after('<p class="text-danger">The Name field is required</p>'); } else { $("#name").closest('.form-group').removeClass('has-error'); $("#name").closest('.form-group').addClass('has-success'); } if (address === "") { $("#address").closest('.form-group').addClass('has-error'); $("#address").after('<p class="text-danger">The Address field is required</p>'); } else { $("#address").closest('.form-group').removeClass('has-error'); $("#address").closest('.form-group').addClass('has-success'); } if (contact === "") { $("#contact").closest('.form-group').addClass('has-error'); $("#contact").after('<p class="text-danger">The Contact field is required</p>'); } else { $("#contact").closest('.form-group').removeClass('has-error'); $("#contact").closest('.form-group').addClass('has-success'); } if (active === "") { $("#active").closest('.form-group').addClass('has-error'); $("#active").after('<p class="text-danger">The Active field is required</p>'); } else { $("#active").closest('.form-group').removeClass('has-error'); $("#active").closest('.form-group').addClass('has-success'); } if (name && address && contact && active) { //submi the form to server $.ajax({ url: form.attr('action'), type: form.attr('method'), data: form.serialize(), dataType: 'json', success: function (response) { // remove the error $(".form-group").removeClass('has-error').removeClass('has-success'); if (response.success === true) { $(".messages").html('<div class="alert alert-success alert-dismissible" role="alert">' + '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>' + '<strong> <span class="glyphicon glyphicon-ok-sign"></span> </strong>' + response.messages + '</div>'); // reset the form $("#createMemberForm")[0].reset(); // reload the datatables manageMemberTable.ajax.reload(null, false); // this function is built in function of datatables; } else { $(".messages").html('<div class="alert alert-warning alert-dismissible" role="alert">' + '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>' + '<strong> <span class="glyphicon glyphicon-exclamation-sign"></span> </strong>' + response.messages + '</div>'); } // /else } // success }); // ajax subit } /// if return false; }); // /submit form for create member }); // /add modal });
Código:
Pues bien, lo que quiero es que en vez de ejecutar un archivo php por cada acción, llamar al mismo archivo y ejecutar una función, y así tenerlo todo agrupado.function removeMember(id = null) { if (id) { // click on remove button $("#removeBtn").unbind('click').bind('click', function () { $.ajax({ url: 'php_action/remove.php', type: 'post', data: {member_id: id}, dataType: 'json', success: function (response) { if (response.success === true) { $(".removeMessages").html('<div class="alert alert-success alert-dismissible" role="alert">' + '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>' + '<strong> <span class="glyphicon glyphicon-ok-sign"></span> </strong>' + response.messages + '</div>'); // refresh the table manageMemberTable.ajax.reload(null, false); // close the modal $("#removeMemberModal").modal('hide'); } else { $(".removeMessages").html('<div class="alert alert-warning alert-dismissible" role="alert">' + '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>' + '<strong> <span class="glyphicon glyphicon-exclamation-sign"></span> </strong>' + response.messages + '</div>'); } } }); }); // click remove btn } else { alert('Error: Refresh the page again'); } }
No se si me explico, un beso a todos