PHP - Como puedo corregir un error de PHP en el oprerador de fusion null

 
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 corregir un error de PHP en el oprerador de fusion null

Publicado por Angel (14 intervenciones) el 15/04/2021 03:33:00
Tengo un proyecto de un Hotel el cual tengo 15 habitaciones con botones, el problema que tengo es con PHP al dar clic a un botón me lanza el siguiente error.


Código en java:

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
32
33
34
35
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);
 
  fetch("Update.php", {
    method: "POST",
    data: {
      idHabitacion: habitacion,
      estatus: rentado ? "Ocupado" : "Disponible",
    },
  })
    .then((resp) => {
      if (resp.ok) {
        return resp.text();
      }
      console.log("Error de petición de Ajax con el servidor");
    })
 
    .then((text) => {
      alert(text);
    })
    .catch((e) => {
      console.log("Hubo un problema con la petición Fetch:" + e.message);
    });
}
document.addEventListener("DOMContentLoaded", () => {
  let habitacion = document.querySelectorAll(".habitacion");
  habitacion.forEach((habitacion) => {
    habitacion.addEventListener("click", estatusHabitacion);
  });
});

Update.php

Error que me sale:

<br />
<b>Parse error</b>: syntax error, unexpected '?' in <b>C:\xampp\htdocs\ProyectoHotel\Update.php</b> on line <b>4</b><br />

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 
 include("conexion.php");
$idHabitacion = (int) $_POST['idHabitacion'] ?? 0;
$estatus = $_POST['estatus'] ?? '';
 
// Verificar que habitación es mayor que cero y el estatus es correcto
if($idHabitacion > 0 && ($estatus == 'Ocupado' || $estatus == 'Disponible') {
    // Actualizar estatus especificando ID de habitación
    $consulta = "UPDATE habitaciones SET estatus = '$estatus' WHERE idHabitacion = $idHabitacion";
    // Ejecutar consulta; devolverá falso en caso de error
    if($conexion->query($consulta)) {
        echo "La habitación $idHabitacion ahora tiene estado $estatus";
    } else {
        echo 'Hubo un error al actualizar habitación';
    }
} else {
    echo 'No se recibieron correctamente ID de habitación y estatus';
}
?>
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 joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como puedo corregir un error de PHP en el oprerador de fusion null

Publicado por joel (1269 intervenciones) el 15/04/2021 08:07:11
Hola Angel, en esta linea exactamente que quieres hacer?
1
$idHabitacion = (int) $_POST['idHabitacion'] ?? 0;
Porque hay dos interrogantes?

Yo creo que el problema esta ahí, creo que no pueden haber dos interrogantes
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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como puedo corregir un error de PHP en el oprerador de fusion null

Publicado por Mauro (1036 intervenciones) el 15/04/2021 14:34:13
Hola Angel:

Lo primero que debes hacer es intentar comprender el mensaje que estás viendo.

En tu caso, dice:

1
Parse error: syntax error, unexpected '?' in C:\xampp\htdocs\ProyectoHotel\Update.php on line 4

Esto indica varias cosas:

1. Hay un problema en la línea 4 del archivo C:\xampp\htdocs\ProyectoHotel\Update.php
2. El problema impide que el intérprete de php haga su trabajo (Es decir, interprete y ejecute tu código)
3. Específicamente, el intérprete se está encontrando con un caracter ? inesperado

En la línea 4 de C:\xampp\htdocs\ProyectoHotel\Update.php encuentras:

1
$idHabitacion = (int) $_POST['idHabitacion'] ?? 0;

Ten en cuenta que este operador apareció en la versión 7 de PHP.

¿Qué versión del intérprete estás utilizando?
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 corregir un error de PHP en el oprerador de fusion null

Publicado por Angel (14 intervenciones) el 15/04/2021 15:01:24
Hola Mauro.

Eso estaba pensando ya que tengo la versión 5.6, entonces tengo implementarlo como operador ternario.

Saludos..
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