Hola a todos, estoy aplicando un datatable con el ejemplo de esta pagina:
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:
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');
}
}
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.
No se si me explico, un beso a todos