PHP - catalogo de productos sin base de datos

 
Vista:
sin imagen de perfil

catalogo de productos sin base de datos

Publicado por Eduardo (17 intervenciones) el 10/04/2020 04:15:33
Saludos expertos,

Estoy desarrollando un catálogo de productos, como mencioné en otro post recién estoy empezando con PHP. El día de hoy descubrí la maravilla que es display: grid y lo fácil que hace maquetear una página, para todos aquellos que recién están empezando con PHP, no se quiebren más la cabeza tratando de maquetear sus páginas con los ejemplos antiguos que pululan por la red, display: grid (que en realidad no es PHP sino parte de CSS) es la solución definitiva.

Ahora bien, transformé mi primitivo código con el que empecé en 4 archivos, entre ellos:

catalogo.php:

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
36
37
<?php
    session_start();
?>
 
<!DOCTYPE html>
<html lang="es">
<head>
	<meta charset="utf-8">
   <link rel="stylesheet" href="css/catalogo.css" />
	<title>Catálogo de productos MOTOREP</title>
</head>
 
<body>
 
   <div class="contenido">
 
      <div class="secc1">
         <img src="imagen/logo.png" />
      </div>
 
      <div class="secc3">
         <?php include 'catalogo_cargaitems.php';?>
      </div>
 
      <div class="secc2">
         <?php include 'catalogo_cargaindice.php';?>
      </div>
 
      <div class="secc4">
         <p><center>Derechos de copia reservados 2020</center></p>
      </div>
 
   </div>
 
</body>
 
</html>

y catalogo_cargaitems.php:

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
 
   if (($handle = fopen("catalogo.csv", "r")) !== FALSE)
      {
      # contara el numero de filas totales para poder crear la paginacion
      $filas=0;
 
      # contara el numero de filas a mostrar
      $fila=0;
 
      # determina la pagina en la que nos encontramos. 0 es la primera pagina
      $pagina=0;
 
      # Determinamos el numero de filas a mostrar
      $filasPorPagina=15;
 
      # si hemos recibido por get el numero de pagina...
      if(isset($_GET["pag"]) && is_numeric($_GET["pag"]))
 
         $pagina=$_GET["pag"];
 
         echo "<table>";
 
         echo "<tr>";
         echo "<th>Foto</th>";
         echo "<th>C&oacutedigo</th>";
         echo "<th>Alm.</th>";
         echo "<th>Producto</th>";
         echo "<th>Modelo</th>";
         echo "<th>Marca</th>";
         echo "<th>Unids.</th>";
         echo "</tr>";
 
         # Hacemos un bucle para recorrer todas las lineas del archivo csv
         while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
         {
            $filas++;
            if($filas>$pagina*$filasPorPagina)
            {
               if($fila++<$filasPorPagina)
               {
                  $num = count($data);
                  echo "<tr>";
                  echo "<td><center><img src='fotos/".rtrim($data[5])."' width='140' height='70'></center></td>\n";  // FOTO
                  echo "<td>".$data[0]."</td>\n";                   // CODIGO
                  echo "<td><center>".$data[1]."</center></td>\n";  // EMPRESA
                  echo "<td>".utf8_encode($data[2])."</td>\n";      // PRODUCTO
                  echo "<td>".$data[3]."</td>\n";                   // MODELO
                  echo "<td>".$data[4]."</td>\n";                   // MARCA
                  echo "<td><center><input type='number' size='8' maxlength='5' min='0' max='9000' name='cantidad'></center></td>\n";  // PEDIDO - AQUI EL USUARIO INGRESARA LAS UNIDADES A COTIZAR DEL PROD.
                  echo "</tr>";
               }
            }
         }
 
      fclose($handle);
 
      echo "</table>";
      }
?>

Como ven en catalogo_cargaitems.php el código carga los productos desde un .CSV e incluso coloca la foto y al final de cada línea hay un <input>, PERO el catalgo es cargado dinamicamente y se generan varias páginas ya que por cada página se cargan 15 productos.

Bajo este escenario se me presentan 2 interrogantes:

1.- Como hago para que el código RECUERDE cuantas unidades ingresó el usuario en cada uno de los <input> que se van cargando dinamicamente, de tal forma que si van a otro página, al regresar a la misma página donde ingreso cantidades estas se muestren en los <input> correspondientes.

2.- Necesito poner un botón llamado "COTIZAR" (sí sé poner el botón), que al pulsarlo, recoja los códigos de producto y sus unidades de todas las páginas donde el usuario ingresó unidades, para con estos valores generar un .CSV con los productos a cotizar seleccionados por el usuario.

Por favor si alguien ha realizado algo parecido o sepa como realizar esto agradeceré mucho su ayuda.

El proyecto, como esta ahora, lo pueden ver en www.infofarmaperu.com/motorep/catalogo.php

Mil gracias anticipadas.
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

catalogo de productos sin base de datos

Publicado por christian (1 intervención) el 10/04/2020 04:42:46
me parece interesante lo q estas planteando

se me ocurre que ingreses esa data a una tabla o puedes crear cookies con ajax para tenerlo en la temproral guardando el codigo y la cantidad o una seccion tambien podria funcionar
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

catalogo de productos sin base de datos

Publicado por Julio (830 intervenciones) el 10/04/2020 10:31:50
Hola.

¿Sabes utilizar variables de sesión? Sería tu solución a los problemas, pues deberías guardar en esas variables los valores que va introduciendo el usuario con alguna identificación de la página en la que están. Y, cuando lances el botón COTIZAR, entonces coger todas esas variables que has guardado en la sesión para generar lo que quieras.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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