
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:
y catalogo_cargaitems.php:
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.
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ódigo</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


0