Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Añadir un libro al carrito


Adicionamos un artículo a nuestro carrito guardando su referencia.


El archivo busqueda.asp nos propone un enlace a la página anadir.asp acompañado de una variable "id" que tiene como valor la referencia de un articulo. Al pinchar sobre el enlace, ejecutamos este script que tiene como consecuencia el aumento de una unidad del numero de artículos y el almacenamiento de la referencia del nuevo articulo incluido:

<%
'Recuperamos la referencia del articulo
id=Request.Querystring("id")

'Anadimos un articulo mas al carrito y le damos el valor de la referencia
Session("num_articulos")=Session("num_articulos")+1
Session(session("num_articulos"))=id
%>

<!--#include file="plantillas/connon.inc"-->
<!--#include file="scripts_lengua/lecturalengua.inc" -->
<!--#include file="plantillas/plantillahtml.inc"-->

<table align="center" width="400" cellspacing="2" cellpadding="2" border="0">
<%
'Fijamos en 10 el limite de libros
If Session("num_articulos")>10 Then
   Session("num_articulos")=10
%>
   <tr>
   <td bgcolor="#999966" align="center"><FONT face="verdana,arial,helvetica" size=2 color="#ffffff"><%imprimir("limite")%></font><br></td>
   </tr>
<%Else 'tenemos menos de 10 libros, podemos pues anadir el nuevo%>
   <tr>
   <td bgcolor="#999966" align="center"><FONT face="verdana,arial,helvetica" size=2 color="#ffffff"><%imprimir("anadido")%></font><br></td>
   </tr>
<%End If%>
<tr>
<td bgcolor="#cc9900" align="center"><FONT face="verdana,arial,helvetica" size=2 color="#ffffff"><a href="carrito.asp"><%imprimir("vercarrito")%></a></font><br></td>
</tr>
<tr>
<td bgcolor="#999966" align="center"><FONT face="verdana,arial,helvetica" size=2 color="#ffffff"><a href="busqueda.asp"><%imprimir("volver")%></a></font><br></td>
</tr>
</table>

<!--#include file="plantillas/connoff.inc"-->

</body>
</html>


Para comenzar, como siempre, recogemos la variable que la URL nos envía:

'Recuperamos la referencia del articulo
id=Request.Querystring("id")


Seguidamente aumentamos de uno la cantidad de libros que hay en el carrito y asignamos el valor de la referencia a una variable Session("numero") cuyo valor de número corresponde con el de la cantidad de artículos presentes en el carrito:

'Anadimos un articulo más al carrito y le damos el valor de la referencia
Session("num_articulos")=Session("num_articulos")+1
Session(session("num_articulos"))=id


Tendremos por lo tanto una colección de variables de este tipo: Session(1)=referencia_1, Session(2)=referencia_2...

La forma más rigurosa de llevar a cabo este tipo de gestiones es a partir de un almacenamiento de registros con los datos correspondientes a cada articulo en una tabla. No hemos querido complicar la aplicación en este sentido y hemos preferido centrarnos en otros aspectos.

Seguidamente, hemos introducido una secuencia que controla el número máximo de artículos en el carrito. Dicho número ha sido fijado en 10. En realidad, para una aplicación "profesional" de este tipo la capacidad del carrito debería ser ilimitada y esto complicaría ligeramente las cosas. Dejamos este punto también a reflexión del lector.

'Fijamos en 10 el limite de libros
If Session("num_articulos")>10 Then
   Session("num_articulos")=10
%>
   <tr>
   <td bgcolor="#999966" align="center"><FONT face="verdana,arial,helvetica" size=2 color="#ffffff"><%imprimir("limite")%></font><br></td>


Si el libro añadido no hace sobrepasar la capacidad del carrito, imprimiremos un mensaje comunicando el éxito de la operación y ofreceremos dos enlaces: Uno para volver al menú de búsquedas y seguir con las compras y otro para ver y editar el carrito.

<%Else 'tenemos menos de 10 libros, podemos pues anadir el nuevo%>
   <tr>
   <td bgcolor="#999966" align="center"><FONT face="verdana,arial,helvetica" size=2 color="#ffffff"><%imprimir("anadido")%></font><br></td>
   </tr>
<%End If%>
<tr>
<td bgcolor="#cc9900" align="center"><FONT face="verdana,arial,helvetica" size=2 color="#ffffff"><a href="carrito.asp"><%imprimir("vercarrito")%></a></font><br></td>
</tr>
<tr>
<td bgcolor="#999966" align="center"><FONT face="verdana,arial,helvetica" size=2 color="#ffffff"><a href="busqueda.asp"><%imprimir("volver")%></a></font><br></td>


Ir la librería

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 3 categorias relacionadas
+ 2 comentarios (Añadir)
+ 1 comentario no revisado

 Autoría, licencia y acciones sobre este artículo

Informe de Rubén Alvarez*

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Librería virtual en ASP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Colecciones de scripts
+ Entrar en Scripts en ASP
+ Entrar en Manuales de ASP


 Comentarios de los visitantes
Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
Se muestran 2 comentarios revisados

 Comentario de Rober
14/11/01 
Esta muy bien el articulo, pero... una duda. Esta tienda virtual que habéis hecho te limita la compra a 10 libros. ¿Qué pasa si quiero pedir más libros?.

Lógicamente podría modificar esta línea de comando sql:

sSQL="Insert Into pedidos2 (nombre, direccion, fecha, total, id_1, id_2, id_3, id_4, id_5, id_6, id_7, id_8, id_9, id_10) Values ('"&nombre&"', '"&direccion&"', '"&date&"', "&Session("total")&", "&id(1)&", "&id(2)&", "&id(3)&", "&id(4)&", "&id(5)&", "&id(6)&", "&id(7)&", "&id(8)&", "&id(9)&", "&id(10)&")".

Pero ¿como podria evitar esta situacion e ir asignando dinamicamente los pedidos segun las necesidades?. Muchas gracias por anticipado.

RESPUESTA

Esta librerías, como ya supondrás, no está pensda para utilizarla comercialmente, sino como una práctica que ayude a dominar un poco más las ASP.

El ejemplo de problema que planteas es uno de los casos en los que no está indicada. Para solucionarlo a mi se me ocurre que tengas por separado la tabla del pedido y la de los artículos del pedido.

De tal modo, a la tabla de la que se hace el insert, se le incluiría todo menos los campos id_1 a id_10. Y habría otra tabla que debería contener todos los artículos del pedido.

Esa segunda tabla debería tener por lo menos el identificador del pedido y el identificador del artículo. También podría contener otras cosas como las unidades solicitadas de cada artículo.

El insert que tienes se traduciría entonces en:

  • 1 insert con el pedido en si, sin los artículos
  • varios insert en la tabla de articulo_pedido, uno por cada artículo solicitado (pueden ser 1, 2, 3 o 100.000)
Espero que esta pequeña explicación te permita entender la idea.

 Comentario de Ruben Vilar
21/1/04 
Como comenta el webmaster, exactamente, en todos (99%) de las bases de datos de pedidos, albaranes, facturas, y en definitiva, todos los documentos que contienen lineas de articulos, se trabaja con almenos dos tablas para el documento, la de cabezera y la de lineas, a ejemplo, un tpv generalmente tiene

tiquets_cabezera
tiquets_lineas

En la tabla de lineas se hace referencia a una id unica de la tabla de cabezeras y de esta manera podemos trabajar con las lineas separadamente, pudiendo editarlas, añadirlas, etc... de forma ilimitada.

Salu2

Añadir un comentario al artículo Añadir un comentario del artículo
 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se ha encontrado un comentario sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Librería virtual en ASP
Categorías
+Colecciones de scripts
+Scripts en ASP
+Manuales de ASP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia