Ir al contenido


Foto

saber si un valor ya se encuentra en una variable de session


  • Por favor identifícate para responder
No hay respuestas en este tema

#1 Noe Velazquez Hernandez

Noe Velazquez Hernandez

    Member

  • Miembros
  • PipPip
  • 28 mensajes

Escrito 18 enero 2021 - 10:08

hola foro !!!
 
buenas noches. esperando me puedan ayudar, les doy de antemano las gracias y es con lo que sigue
tengo el formulario este llama a carrito-agrega.php y lo inserta correctamente 
los datos dentro de una variable de session 
 
index.php----- 

php
  1. <form name="f" action="carrito-agrega.php" method="post">
  2.    <input type="hidden" name="id" id="id" value="<?php echo $fila['id']; ?>" />
  3.    <input type="hidden" name="nombre" id="nombre" value="<?php echo  $fila['nombre'];?>"/>
  4.    <input type="hidden" name="precio" id="precio" value="<?php echo $fila['precio'];?>"/>
  5.    <input type="hidden" name="cantidad" id="cantidad" value="<?php echo 1;?>"/>
  6.    <input type="submit" name="btnAccion" value="Agregar al Carrito" class="btn" />
  7. </form>

carrito-agrega.php-------

php
  1. $escribe = 'si';
  2. $pid = $_POST['id'];
  3. $pno = $_POST['nombre'];
  4. $pca = $_POST['cantidad'];
  5. $ppr = $_POST['precio'];
  6. $todo = [$pid,$pno,$pca,$ppr];
  7.  
  8. if (isset($_POST['btnAccion'])){
  9. if (isset($_SESSION['carrito'])) {
  10. array_push($_SESSION["carrito"], $todo);
  11. }else{
  12. $NumProd = count($_SESSION['carrito']);
  13. array_push($_SESSION['carrito'][$NumProd] = $todo);
  14. }
  15. }

y lo que pretendo (no he podido hacerlo...) es que si se selecciona un id que ya este dentro del $_SESSION['carrito']
envie un mensaje que ya exite ese producto lo he intentado de 2 maneras pero no logro hacerlo me podrian indicar que estoy
haciendo mal?


modo 1-----------------------------

php
  1. $key = array_column($_SESSION['carrito'],$pid);
  2. if(in_array($_SESSION['carrito'], $key)){
  3.   echo '<script>alert(ya existe)</script>';
  4. }else{
  5.   array_push($_SESSION["carrito"], $todo);
  6. }

modo 2-------------------------------

php
  1.  foreach ($_SESSION["carrito"] as $indice => $detalle) {
  2.     if ($detalle[1] == $pid) {
  3.        $escribe = 'no';
  4.        break;
  5.     }
  6.  }
  7.  if ($escribe == 'si') {
  8.   echo 'no esta';
  9.   array_push($_SESSION["carrito"], $todo);
  10.  }
  11.  if ($escribe == 'no') {
  12.   echo 'si esta';
  13.  }


  • 0