PHP - Como puedo actualizar el estado de botones si es verde o rojo en PHP y Ajax

 
Vista:
Imágen de perfil de Angel
Val: 27
Ha aumentado su posición en 24 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como puedo actualizar el estado de botones si es verde o rojo en PHP y Ajax

Publicado por Angel (14 intervenciones) el 14/04/2021 05:15:04
Buenas tardes estoy con un proyecto de Hotel el cual tengo 15 botones que son las habitaciones, tengo la funcionalidad ya creado en javascript al dar clic cambia a rojo hasta ahí dar otra ves clic vuelva a verde hasta ahí todo bien, pero quiero que se mantenga ese color como ocupado o desocupado , ya sea cuando se cierre el sistema y vuelva abrirlo se mantenga ese color.

Tengo una base de datos con una tabla llamada Habitaciones con sus respectivas columnas idHabitacion y estatus que esta llenado como Disponible

En la petición con AJax me actualiza la basa de datos, pero me lo hace de manera completa las 15 habitaciones y no he podido que realice el cambio de color rojo como ocupado y se mantenga ese color o viceversa, ya cuando el usuario de salga del sistema y entre otro usuario vea que este ocupado esa habitación


Update.php

1
2
3
4
5
6
7
8
9
10
?php
 
 include("conexion.php");
 
 $SQL_UPADTE ="UPDATE habitaciones SET estatus = 'Ocupado';";
 
 $RESUL =$conexion ->query($SQL_UPADTE);
 
 
?>

Este es el código que tengo en javascript:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function estatusHabitacion(e) {
    let btn = e.target;
    btn.classList.toggle("rentado");
    let rentado = btn.classList.contains("rentado");
 
    let habitacion = boton.textContent.replace("H ", "");
    onsole.log(habitacion, rentado);
 
     // Implementación con Ajax
    $(document).ready(function () {
    $(".habitacion").click(function () {
    $.ajax({
    url: "Update.php",
    type: "POST",
    success: function () {
    alert("La habitación se ha rentado");
    },
   });
  });
 });
 
  }
    document.addEventListener("DOMContentLoaded", () => {
 
    let habitacion = document.querySelectorAll(".habitacion");
 
    habitacion.forEach((habitacion) => {
 
    habitacion.addEventListener("click", estatusHabitacion);
   });
 });

Estilos CSS:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<style>
    button {
        background: #29bb89;
        width: 50px;
        height: 50px;
        margin: 6px;
    }
 
    .rentado {
        background: #f05945;
    }
 
 
    </style>

Mis botones de las habitaciones:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div id="habitacion" class="contendo">
  <tr>
   <button class="habitacion">H 1</button>
   <button class="habitacion">H 2</button>
   <button class="habitacion">H 3</button>
   <button class="habitacion">H 4</button>
   <button class="habitacion">H 5</button>
   <button class="habitacion">H 6</button>
   <button class="habitacion">H 7</button>
   <button class="habitacion">H 8</button>
   <button class="habitacion">H 9</button>
   <button class="habitacion">H 10</button>
   <button class="habitacion">H 11</button>
   <button class="habitacion">H 12</button>
   <button class="habitacion">H 13</button>
   <button class="habitacion">H 14</button>
   <button class="habitacion">H 15</button>
 </tr>

Captura de de la tabla habitaciones:


Captura

Aquí tengo el demo de las habitaciones:

https://jsfiddle.net/Angel82/Lc7o8nsp/1/
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como puedo actualizar el estado de botones si es verde o rojo en PHP y Ajax

Publicado por Alejandro (839 intervenciones) el 14/04/2021 18:51:17
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Los button los puedes generar a aparir de la consulta a la base de datos y así obtienes el estatus. Si es ocupado agregas la clase "rentado".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Angel
Val: 27
Ha aumentado su posición en 24 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como puedo actualizar el estado de botones si es verde o rojo en PHP y Ajax

Publicado por Angel (14 intervenciones) el 14/04/2021 19:06:23
Que tal Alejandro he hecho algunas modificaciones al código.

Esto lo realice cada vez que doy clic en algún botón solo se actualice ese nada mas.

En Ajas hice modificaciones por como Type. ready son obsoletos eso lo en una información.

En la etiqueta HTML agregue valores.

Pero no se aplica la implementación ni tampoco me dispara el error que tengo.

Update.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 $idHabitacion=!empty($_POST['idHabitacion'])? $_POST['idHabitacion']: NULL;
 
if ($idHabitacion) {
   include("conexion.php");
 
$sql ="UPDATE habitaciones SET estatus = 'Disponible' WHERE idHabitacion=$idHabitacion";
 
$RESUL =$conexion ->query($sql);
 
if (!$RESUL) {
    echo 'Error al modificar los datos';
} else {
    echo 'No se actualizaron datos del cliente';
}
 
}
?>

Código Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function estatusHabitacion(e) {
  let btn = e.target;
  btn.classList.toggle("rentado");
  let rentado = btn.classList.contains("rentado");
 
  let habitacion = btn.textContent.replace("H", "");
  console.log(habitacion, rentado);
 
  $(function () {
    $(".habitacion").click(function () {
      var idHabitacion = $(this).pro("value");
      $.ajax({
        url: "Update.php",
        method: "POST",
        data: { idHabitacion: idHabitacion },
      }).done(function (result) {
        alert(result);
      });
    });
  });
}
 
document.addEventListener("DOMContentLoaded", () => {
  let habitacion = document.querySelectorAll(".habitacion");
 
  habitacion.forEach((habitacion) => {
    habitacion.addEventListener("click", estatusHabitacion);
  });
});

Etiquetas HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<div id="habitacion" class="contendo">
        <tr>
            <button class="habitacion" value="1">H 1</button>
            <button class="habitacion" value="2">H 2</button>
            <button class="habitacion" value="3">H 3</button>
            <button class="habitacion" value="4">H 4</button>
            <button class="habitacion" value="5">H 5</button>
            <button class="habitacion" value="6">H 6</button>
            <button class="habitacion" value="7">H 7</button>
            <button class="habitacion" value="8">H 8</button>
            <button class="habitacion" value="9">H 9</button>
            <button class="habitacion" value="10">H 10</button>
            <button class="habitacion" value="11">H 11</button>
            <button class="habitacion" value="12">H 12</button>
            <button class="habitacion" value="13">H 13</button>
            <button class="habitacion" value="14">H 14</button>
            <button class="habitacion" value="15">H 15</button>
        </tr>
 
    </div>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como puedo actualizar el estado de botones si es verde o rojo en PHP y Ajax

Publicado por Alejandro (839 intervenciones) el 14/04/2021 19:22:27
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Te dejo un ejemplo simulado con JS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<div id="habitacion" class="contendo"></div>
 
<style>
	.habitacion{
		background-color:green;
	}
	.rentado{
		background-color:red;
	}
</style>
 
<script>
	var habitaciones=[
		{idHabitacion:1, estatus:'libre'},
		{idHabitacion:2, estatus:'libre'},
		{idHabitacion:3, estatus:'libre'},
		{idHabitacion:4, estatus:'ocupado'},
		{idHabitacion:5, estatus:'libre'}
	];
	for(i=0, t=habitaciones.length; i<t; i++){
		rentado = habitaciones[i].estatus=='ocupado'? ' rentado' : '';
		document.getElementById('habitacion').innerHTML += '<button class="habitacion'+ rentado+'">H '+habitaciones[i].idHabitacion+'</buton>';
	}
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Angel
Val: 27
Ha aumentado su posición en 24 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como puedo actualizar el estado de botones si es verde o rojo en PHP y Ajax

Publicado por Angel (14 intervenciones) el 14/04/2021 19:31:55
Ok Alejandro gracias verificare ese ejemplo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar