简体   繁体   English

Select DataTable中一行的按钮

[英]Select a button of a row in DataTable

I have a dataTable where I bring the data from the database with Jquery in each row I have two buttons where I accept or reject something, I want to know how can I do when I reject something the button of accepr disappears and if I accept that the same thing happens with the other button of reject我有一个数据表,我在其中从数据库中获取数据,每行带有 Jquery 我有两个按钮可以接受或拒绝某些内容,我想知道当我拒绝某些内容时该怎么办,accepr 的按钮消失了,如果我接受同样的事情发生在另一个拒绝按钮上

public function mostrarTabla(){ 

    if (isset($_GET["perfilOculto"])) {

        $item = "idUsuario";
        $valor = $_GET["perfilOculto"];

        $proyectos = ControladorProyectos::ctrMostrarProyectos($item, $valor);

        if(count($proyectos) == 0){

            echo '{"data": []}';

            return;
        }

        $datosJson = '{

            "data": [ ';

            for($i = 0; $i < count($proyectos); $i++){

                $item = "id";
                $valor = $proyectos[$i]["empleadoAsignado"];

                $traerEmpleado = ControladorUsuarios::ctrMostrarEmpleados($item, $valor);

                $empleado = $traerEmpleado[0]["nombreEmpleado"] ." ". $traerEmpleado[0]["apellidoEmpleado"];

                $dato = $proyectos[$i]["idCliente"];

                $clientes = ControladorProyectos::ctrMostrarClientes($dato);

                $cliente = $clientes[0]["nombreEmpresa"];

                $clienteContacto = $clientes[0]["emailContacto"];

                if($proyectos[$i]["aceptado"] == 0){

                    $colorEstado = "btn-info";
                    $textoEstado = "Aceptado";
                    $estadoAceptado = 1;

                    $colorEstado2 = "btn-danger";
                    $textoEstado2 = "Cancelado";
                    $estadoAceptado2 = 2;

                    $colorEstado3 = "btn-info";
                    $textoEstado3 = "Pendiente de aceptar";
                    $estadoTarea = 1;

                    $estado = "<button class='btn btn-xs aceptado btnAcptado ".$colorEstado." idProyecto='". $proyectos[$i]["id"]."' estadoAceptado='".$estadoAceptado."' estadoBoton='".($i+1)."'>".$textoEstado."</button>&nbsp";

                    $estado2 = "<button class='btn btn-xs rechazado btnRechazado ".$colorEstado2."' idProyecto='". $proyectos[$i]["id"]."' estadoAceptado2='".$estadoAceptado2."'>".$textoEstado2."</button>";

                    $estado3 = "<button class='btn btn-xs btnEstado ".$colorEstado3."' idProyecto='". $proyectos[$i]["id"]."' estadoTarea='".$estadoTarea."'>".$textoEstado3."</button>";

                    $botones =  "<div class='btn-group'><button class='btn btn-warning btnEditarProyecto' idProyecto='".$proyectos[$i]["id"]."' data-toggle='modal' data-target='#modalEditarProyecto'><i class='fa fa-pencil'></i></button><button class='btn btn-danger btnEliminarProyecto' idProyecto='".$proyectos[$i]["id"]."'><i class='fa fa-times'></i></button></div>"; 


                } else if($proyectos[$i]["aceptado"] == 1){

                    $colorEstado = "btn-info";
                    $textoEstado = "Aceptado";
                    $estadoAceptado = 1;

                    $colorEstado2 = "invisible";
                    $textoEstado2 = "Cancelado";
                    $estadoAceptado2 = 2;

                    $colorEstado3 = "btn-info";
                    $textoEstado3 = "En proceso";
                    $estadoProyecto2 = 1;

                    $estado2 = "<button class='".$colorEstado2."'></button>";

                    $estado = "<button class='btn btn-xs aceptado btnAcptado ".$colorEstado."' idProyecto='". $proyectos[$i]["id"]."' estadoAceptado='".$estadoAceptado."'>".$textoEstado."</button>&nbsp";

                    $estado3 = "<button class='btn btn-xs btnEstado ".$colorEstado3."' idProyecto='". $proyectos[$i]["id"]."' estadoProyecto2='".$estadoProyecto2."'>".$textoEstado3."</button>";

                    $botones =  "<div class='btn-group'><button class='btn btn-warning btnEditarProyecto' idProyecto='".$proyectos[$i]["id"]."' data-toggle='modal' data-target='#modalEditarProyecto'><i class='fa fa-pencil'></i></button><button class='btn btn-danger btnEliminarProyecto' idProyecto='".$proyectos[$i]["id"]."'><i class='fa fa-times'></i></button></div>"; 

                } else {
                    $colorEstado = "invisible";
                    $textoEstado = "Aceptado";
                    $estadoAceptado = 1;

                    $colorEstado2 = "btn-warning";
                    $textoEstado2 = "Cancelado";
                    $estadoAceptado2 = 2;

                    $colorEstado3 = "btn-info";
                    $textoEstado3 = "Proyecto cancelado";
                    $estadoProyecto2 = 3;

                    $estado = "<button class='".$colorEstado."'></button>";

                    $estado2 = "<button class='btn btn-xsr echazado btnCancelar ".$colorEstado2."' idProyecto='". $proyectos[$i]["id"]."' estadoAceptado2='".$estadoAceptado2."'>".$textoEstado2."</button>";

                    $estado3 = "<button class='btn btn-xs btnEstado ".$colorEstado3."' idProyecto='". $proyectos[$i]["id"]."' estadoProyecto2='".$estadoProyecto2."'>".$textoEstado3."</button>";

                    $botones =  "<div class='btn-group'><button class='btn btn-warning btnEditarProyecto' idProyecto='".$proyectos[$i]["id"]."' data-toggle='modal' data-target='#modalEditarProyecto'><i class='fa fa-pencil'></i></button><button class='btn btn-danger btnEliminarProyecto' idProyecto='".$proyectos[$i]["id"]."'><i class='fa fa-times'></i></button></div>"; 
                }

                $algo = "<div class='btn-group'>";

                $finAlgo = "</div>";



                $datosJson .= '[
                    "'.$cliente.'",
                    "'.$proyectos[$i]["nombreProyecto"].'",
                    "'.$clienteContacto.'",
                    "'.$algo.$estado.$finAlgo.$algo.$estado2.$finAlgo.'",
                    "'.$estado3 .'",
                    "'.$empleado.'",
                    "'.$botones.'"
                ],';
            }

            $datosJson = substr($datosJson, 0, -1);

            $datosJson.=  ']

        }'; 

        echo $datosJson;
    }
}

In JavaScript the click event I've like this在 JavaScript 点击事件我喜欢这样

$(document).on("click", ".btnRechazado", function(){

  var idProyecto = $(this).attr("idProyecto");
  var estadoAceptado2 = $(this).attr("estadoAceptado2");
  var estadoProyecto2 = 1;

  console.log(estadoAceptado2);

  var datos = new FormData();
    datos.append("idProyecto", idProyecto);
    datos.append("activarProyecto", estadoAceptado2);
    datos.append("estadoProyecto2", estadoProyecto2);

    $.ajax({

    url:"ajax/proyectos.ajax.php",
    method: "POST",
    data: datos,
    cache: false,
      contentType: false,
      processData: false,
      success: function(respuesta){
        console.log(respuesta);

        if(window.matchMedia("(max-width:767px)").matches){

           swal({
            title: "El usuario ha sido actualizado",
            type: "success",
            confirmButtonText: "¡Cerrar!"
          }).then(function(result) {

              if (result.value) {

              window.location = "proyectos";

            }

          });


    }
      }

    })

    if(estadoAceptado2 == 2){

      $(this).addClass('btn-danger');
      $(this).removeClass('btn-info');
      $(this).html('Cancelado');

      $("tr").find('nombreTexto').hide();

    }

})

在此处输入图像描述

Are both buttons children of <div class='btn-group'> ?两个buttons都是<div class='btn-group'>孩子吗? If yes, you can do something like this on you button click event :如果是,您可以在button单击event上执行以下操作:

$(document).on('click', '.btnRechazado', function(){
    $(this).closest('div.btn-group').find('.btnEliminarProyecto').remove();
    //your code
});

Or, if both buttons are siblings elements :或者,如果两个buttons都是siblings elements

$(this).siblings('button').remove();

If you do not want to remove <button> element from the DOM you can change remove() to hide()如果您不想从DOM中移除<button>元素,您可以将remove()更改为hide()

JQuery remove() and hide() API Documentation: https://api.jquery.com/remove/ , https://api.jquery.com/hide/ JQuery remove() and hide() API Documentation: https://api.jquery.com/remove/ , https://api.jquery.com/hide/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM