javascript - 选择DataTable中一行的按钮

标签 javascript jquery datatables

我有一个数据表,我在每一行中使用 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;
    }
}

在 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();

    }

})

enter image description here

最佳答案

都是buttons <div class='btn-group'> 的 child ?如果是的话,你可以对你做这样的事情button点击event :

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

或者,如果两者都是 buttonssiblings elements :

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

如果您不想删除<button>来自 DOM 的元素你可以改变remove()hide()

JQuery remove()hide() API文档: https://api.jquery.com/remove/ , https://api.jquery.com/hide/

关于javascript - 选择DataTable中一行的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58016377/

相关文章:

javascript - WebGL 或 Canvas 是获得 SVG 关键帧动画硬件加速的唯一方法吗?

javascript - AngularJS 忽略 ui.route 的路由

javascript - Knockout.js:通过循环更改多个可观察值不起作用

javascript - 我的脚本完美运行,直到我将其包装在 if (screen.width < 980) { } 语句中以检查屏幕尺寸

javascript - Symfony 5 + Webpack Encore + 数据表 : buttons not being displayed

javascript - 评级不是函数 jquery 插件错误

javascript - 如何显示像 stackoverflow 这样的对话框?

javascript - SimplyScroll 在此页面上中断

javascript - 如何从数据表中删除一些元素?

jquery - Json 响应未绑定(bind)到 jquery 数据表