Как передать идентификатор из jquery datatable в другую jquery функцию - PullRequest
0 голосов
/ 03 апреля 2020

Я хочу передать идентификатор из jquery, доступный для данных, в другую функцию jquery.

Вот функция jquery, для которой я тоже хочу передать идентификатор

   $("#makeEditable").on('mousedown.save', "i.save.material-icons", function (e) {
                    $.ajax({
                        type: 'GET',
                        url: '/gestiondeubicaciones/Editar',
                        data: { id: 3 }, /* How to pass  id here???*/
                        cache: false,
                        success: function (result) {

                        }
                    });
                    $(this).text("edit").removeClass().addClass("edit material-icons");
                    var $row = $(this).closest("tr");
                    var $tds = $row.find("td").not(':last');//.not(':first');

                    $.each($tds, function (i, el) {
                        var txt = $(this).find("input").val()
                        $(this).html(txt);
                    });
                });

Чтобы быть более точным c Я хочу заменить 3 на переменную

                    data: { id: 3 }, /* How to pass  id here???*/

Вот мой код данных

var table;
            table = $('#makeEditable').DataTable({
                rowReorder: {
                    selector: 'td:nth-child(2)'
                },
                responsive: true,
                ajax: "/gestiondeubicaciones/GetUbicaciones",
                columns: [
                    { data: "armario" },
                    { data: "cajon" },
                    {
                        data: "ubicacion_id", "width": "50px", "render": function (data) {
                            return '<a class="popup-edit"><i id="editSave" class="edit material-icons" title="Detalles">edit</i></a>' +
                                '<a class="popup-delete" href="#" onclick="DeleteData(' + data + ');" title="Eliminar"><i class="delete material-icons">delete</i></a>'; 
                        }
                    }
                ]

Будь более точным c Я хочу передать данные в функцию jquery.

 function (data) {
                                return '<a class="popup-edit"><i id="editSave" class="edit material-icons" title="Detalles">edit</i></a>'

Как я могу передать данные из jquery datatable в функцию jquery. Спасибо за помощь.

1 Ответ

1 голос
/ 03 апреля 2020

1. В вашем проходном идентификаторе (ubicacion_id) из вашей базы данных затем -

{
    data: "ubicacion_id", "width": "50px", "render": function (data) {
    return '<a class="popup-edit"><i id="editSave"  data-id="' + data + '" class="edit material-icons" title="Detalles">edit</i></a>'; 
  }

2.В вашем jquery событии клика -

data: { id: $(this).attr("data-id") },

ИЛИ

1.В вашем проходном идентификаторе (ubicacion_id) из вашей базы данных затем -

{
    data: "ubicacion_id", "width": "50px", "render": function (data) {
    return '<a class="popup-edit"><i id="editSave" onmousedown="EditData(' + data + ');" class="edit material-icons" title="Detalles">edit</i></a>'; 
  }// you can onclick rather than onmousedown event

2.В вашем jquery клике по событию -

function EditData(id) {
    $.ajax({
        type: 'GET',
        url: '/gestiondeubicaciones/Editar',
        data: { id: id },
        cache: false,
        success: function (result) {

        }
    });
    $(this).text("edit").removeClass().addClass("edit material-icons");
    var $row = $(this).closest("tr");
    var $tds = $row.find("td").not(':last');//.not(':first');

    $.each($tds, function (i, el) {
        var txt = $(this).find("input").val()
        $(this).html(txt);
    });
}

, если вы хотите получить какой-либо или все данные в текущем row в виде данных, затем-

{ "width": "50px", "render": function (data, type, row) { return '<a class="popup-edit"><i id="editSave" onmousedown="EditData(' + row.ubicacion_id + ');" class="edit material-icons" title="Detalles">edit</i></a>'; }
...