Skip to content
Advertisement

How do I get 2 params fo 2 different columns in datatable?

So, I need to get 2 params from my dataTable, but from different columns, I render a button in one of those columns and post it data through a JS Function, but only that param is not enough, i really need another one, let me show you:

function table(){
  // Define table id as a dataTable
    var table = $("#tabelaSintoma").DataTable(
      {
        "ajax": "webservices/ws_downtime/ws_tableSymptom.php",/* Ajax to pull all info about your table)*/
        "columns": 

        [
            { "data": "sintoma"},
            { "data": "CAUSA"},
            { "data": "AREA"},
            { "data": "COD" ,
              render: function(data) {// that's the function i render the button, but I need to get the column above this... "data: AREA"... and then I have to POST it onclick.
                data = '<button type="button" class="btn btn-danger" onclick="callDisableCause(' + data + ');"><i class="fa fa-trash"></i></button>';
                return data;}
                },

        ]

    }
    );

  }

I need to POST two params from different columns in the same functions, how can I do that?

And there is my function to POST to my php.

function callDisableCause(id){

    var url = "webservices/ws_downtime/ws_disableCause.php"
    $.ajax({
      method: "POST",
      url: url,
      data:{
        id: id
      },
      success: function(result){
        swal({
              title: "Cuidado!", // titulo do alerta
              text: "Deseja realmente desabilitar essa causa?", //texto apresentado ao cliente no alerta
              icon: "warning", // icone apresentado ('success', 'warning')
              buttons: true, // botoes(possivel personalizar, colocar o texto que melhor se encaixa na situação)
            })
            .then((willDelete) => { // função para pegar o resultado do alerta
              if (willDelete) { 
                // se for verdadeiro ele recarrega o formulario
                $('#mainpages').load('pages/downtime/downtime_admin/downtimeSymptom.php');

              }

               else { 
                 // se for falso volta para a pagina principal
                 $('#mainpages').load('pages/downtime/downtime_admin/downtimeSymptom.php');

              }

            });
      }

    });
}

Advertisement

Answer

The render function has three parameters. the third one has the data of the entire row. Try using this code

{ "data": "COD" , render: function(data, type, row ) {
       data = '<button type="button" class="btn btn-danger" onclick="callDisableCause(' + data + ', ' + row.COD + ');"><i class="fa fa-trash"></i></button>';
       return data;
    }
},

Regards!

User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement