javascript - 在DataTable中选择一行的按钮
问题描述
我有一个dataTable,我在每行中使用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> ";
$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> ";
$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();
}
})
解决方案
两个buttons
孩子都是<div class='btn-group'>
? 如果是,您可以在button
单击时执行以下操作event
:
$(document).on('click', '.btnRechazado', function(){
$(this).closest('div.btn-group').find('.btnEliminarProyecto').remove();
//your code
});
或者,如果两者buttons
都是siblings elements
:
$(this).siblings('button').remove();
如果您不想从中删除<button>
元素,DOM
可以更改remove()
为hide()
JQueryremove()
和hide()
API 文档:
https :
//api.jquery.com/remove/,https: //api.jquery.com/hide/
推荐阅读
- java - 将传统的调用weclient循环转化为非阻塞方式
- c++ - c++线程工作者在高负载下失败
- android - Material DateRangePicker 启用带有单个日期的接受按钮
- python - 保存为 pdf 时指定的颜色看起来不同
- jquery - JQuery点击事件未在Firefox中触发
- apache-spark - 使用查找表中的 withColumn 动态添加新列
- flutter - 我想使用颤振制作生日提醒通知
- java - Apache PdfBox如何设置字段字体大小
- vim - Vim 插件 youcompleteme: 无法启动 Ycm Server / YcmToggleLogs 无显示
- python - 如何在 Python 中获取或打印 GMT 时区的当前日期时间?