Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/08/2017, 04:33
caroldev13
 
Fecha de Ingreso: marzo-2016
Mensajes: 17
Antigüedad: 8 años, 2 meses
Puntos: 0
Ejecutar función php desde ajax - jquery

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">&times;</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">&times;</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">&times;</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">&times;</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