Nueva pregunta

Pregunta:

Fecha: 06-04-2020 17:04:21 (En Español)

Alguien me puede dar una mano con este script, Actualizar campo base de datos con php y ajax[Resuelta]

El detalle es el siguiente, tengo una tabla con un botón que al hacer click en el mismo me actualiza el campo intActivo de la base de datos, cambia el valor si esta activo 1 sino 0, hasta ahí todo bien el tema es que le agregé a la base de datos un campo más que se llama strVerOcultar que cuando activo es 1 el campo strVerOcultar tendría que tomar el valor visible, y valga la redundancia si el campo intActivo esta en 0 el campo strVerOcultar tuviera que cambiar a invisible, y no se como resolverlo, agradecería me den una mano, les dejo debajo los archivos, desde ya muchas gracias

Base de Datos

DROP TABLE IF EXISTS `tblconfiguracion`;
CREATE TABLE `tblconfiguracion` (
`idConfiguracion` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
`strModulo` tinytext CHARACTER SET latin1,
`intEstado` int(1) DEFAULT NULL,
`strVerOcultar` char(50) DEFAULT NULL,
PRIMARY KEY (`idConfiguracion`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `tblconfiguracion` (`idConfiguracion`, `strModulo`, `intEstado`, `strVerOcultar`) VALUES
(1, 'encuestas', 0, 'invisible');

Conexión

 
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_panel = "localhost";
$database_panel = "basededatos";
$username_panel = "root";
$password_panel = "";
$panel = mysqli_connect($hostname_panel, $username_panel, $password_panel, $database_panel);
//mysqli_set_charset($panel, 'utf8');
?>


index.php

<?php require_once('panel.php'); ?>
<html>
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<link href="panel.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="container">
<table class="table table-sm table-striped nowrap" cellspacing="0" width="100%">
<head>
		    <tr>
		        <td align="center">ID</td>
		        <td align="center">Modulo</td>
		        <td align="center">Estado</td>
		        <td align="center">Ver-Ocultar</td>
		        <td align="center" width="100">Acciones</td>
		    </tr>
			</thead>
		    <?php $sql=$panel->query("SELECT * FROM tblconfiguracion WHERE strModulo='encuestas'");
            foreach ($sql as $key => $configuracion) :
            	?>
		    <tr>
		        <td align="center"><?php echo $configuracion['idConfiguracion'] ?></td>
		        <td align="center"><?php echo $configuracion['strModulo']; ?></td>
		        <td align="center"><?php echo $configuracion['intEstado']; ?></td>
		        <td align="center"><?php echo $configuracion['strVerOcultar']; ?></td>
		        <td align="center"><button type="button" title="Activar / Desactivar Encuesta" id="status_checks" data="<?php echo $configuracion['idConfiguracion'];?>" class="<?php echo ($configuracion['intEstado'])? 'btn btn-success btn-sm btn3d ' : 'btn btn-danger btn-sm btn3d' ?>"><?php echo ($configuracion['intEstado'])? '<i class="fa fa-check-square-o fa-lg mr-3" aria-hidden="true"></i> Encuesta' : '<i class="fa fa-times fa-lg mr-3" aria-hidden="true"></i> Encuesta' ?> </button></td>
		    </tr>
		   <?php endforeach; ?>
		</table>

<div class="col-sm-2">
<div align="center" class="<?php echo $configuracion['strVerOcultar'];?>">
Div que tuviera que ocultarse cuando encuesta está inactiva y el Campo strVerOcultar en invisible
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" ></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</body>
</html>
<script type="text/javascript">
$(document).on('click','#status_checks',function(){
var estado = ($(this).hasClass("btn-success")) ? '0' : '1';
var msg = (estado=='0')? 'Desactivar el Módulo Encuesta' : 'Activar el Módulo Encuesta';
if(confirm("Está seguro de "+ msg)){
	var current_element = $(this);
	url = "ajax.php";
	$.ajax({
	type:"POST",
	url: url,
	data: {id:$(current_element).attr('data'),estado:estado},
	success: function(data)
		{   
			location.reload();
		}
	});
	}      
});
</script>



ajax.php

<?php require_once('panel.php'); 
extract($_POST);
$user_id=$panel->real_escape_string($id);
$estado=$panel->real_escape_string($estado);
$sql=$panel->query("UPDATE tblconfiguracion SET intEstado='$estado' WHERE idConfiguracion='$id'");
echo $sql;

?>
Etiquetas: AJAX - PHP MySQLi Votos: 0 - Respuestas: 2 - Vistas: 8 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 07-04-2020 06:42:28 Me autorespondo. Bueno lo pude solucionar de este modo, no se si es el más efectivo pero logro el objetivo, les dejo el código, espero que a alguno le sirva, saludos

    <?php require_once('panel.php'); 
    extract($_POST);
    $user_id=$panel->real_escape_string($id);
    $estado=$panel->real_escape_string($estado);
    $verocultar = $estado ;
                        if($verocultar == "1"){
                            $verocultar = visible;
                        }else{
                            $verocultar = invisible;
                        }
     
    $sql=$panel->query("UPDATE tblconfiguracion SET intEstado='$estado', strVerOcultar ='$verocultar' WHERE idConfiguracion='$id'  ");
    echo $sql;
    ?>
    
      Votos: 0 - Link respuesta
     
  • Fecha: 07-04-2020 06:43:56 Si alguien tiene otra sugerencia, mejor bienvenido sea, saludos   Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com