Foros del Web » Programando para Internet » ASP Clásico »

consultar matriz

Estas en el tema de consultar matriz en el foro de ASP Clásico en Foros del Web. Hola: Estoy intentando adaptar un carrito de la compra que funciona en base a variables de sesion, que viene en un libro, de forma que ...
  #1 (permalink)  
Antiguo 02/08/2004, 09:34
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años, 11 meses
Puntos: 0
consultar matriz

Hola:
Estoy intentando adaptar un carrito de la compra que funciona en base a variables de sesion, que viene en un libro, de forma que cuando el usuario haga click en el boton "ordenar" me envie el contenido del carrito (los articulos que compra) a una página de confirmación de la forma siguiente:

Usted ha comprado los siguientes artículos:
Articulo 1...... 10€
articulos 2......100€
Total de la compra:...... 110€

Según entiendo el código, el asunto es que tengo que leer el contenido de la variable de sesion: session("carrito") que es almacenada en la matriz carritolocal, pero no consigo ver su contenido.

¿Pueden hecharme una mano?

Aqui les paso el código a ver si me dicen cómo puedo hacerlo porque me estoy volviendo loco

Código:
<%
  ' Define constantes
  CONST IDPCARRO = 0
  CONST NOMBREPCARRO = 1
  CONST PRECIOPCARRO = 2
  CONST CANTPCARRO = 3
  
  ' Carga el carrito de compras 
  IF NOT isArray( Session( "carrito" ) ) THEN
    DIM carritoLocal( 4, 60 )
  ELSE
    carritoLocal = Session( "carrito" )
  END IF
  
  ' Carga la información del producto 
  IdentificadorProducto = TRIM (Request("idp"))
  NombreProducto = TRIM( Request( "NombreProducto" ) )
  PrecioProducto = TRIM( Request( "PrecioProducto" ) )
  
  ' Agrega el producto al carrito
  IF IdentificadorProducto <> "" THEN
    foundIT = FALSE
    FOR i = 0 TO UBOUND( carritoLocal )
      IF carritoLocal( IDPCARRO, i ) = IdentificadorProducto THEN
        carritoLocal( CANTPCARRO, i ) = carritoLocal( CANTPCARRO, i ) + 1
        foundIT = TRUE
        EXIT FOR
      END IF
    NEXT
    IF NOT foundIT THEN
      FOR i = 0 TO UBOUND( carritoLocal, 2 )
        IF carritoLocal( IDPCARRO, i ) = "" THEN
          carritoLocal( IDPCARRO, i ) = IdentificadorProducto
          carritoLocal( NOMBREPCARRO, i ) = NombreProducto
          carritoLocal( PRECIOPCARRO, i ) = PrecioProducto
          carritoLocal( CANTPCARRO, i ) = 1
          EXIT FOR
        END IF
      NEXT
    END IF
  END IF
   
  ' Actualiza las cantidades de productos que haya en el carrito de compras
  IF Request( "actualizarC" ) <> "" THEN
    FOR i = 0 TO UBOUND( carritoLocal, 2 )
      nuevaC = TRIM( Request( "cp" & carritoLocal( IDPCARRO, i ) ) )
      borrarProducto = TRIM( Request( "bp" & carritoLocal( IDPCARRO, i ) ) )
      IF nuevaC = "" or nuevaC = "0" or borrarProducto <> "" THEN
        carritoLocal( IDPCARRO, i ) = ""
      ELSE
        IF isNumeric( nuevaC ) THEN
          carritoLocal( CANTPCARRO, i ) = nuevaC
        END IF
      END IF
    NEXT
  END IF
  
   
  ' Actualiza la variable Session con la matriz 
  Session( "carrito" ) = carritoLocal
  %>
  <html>
  <head><title>Carrito de compras Session</title></head>
  <body scroll="no" bgcolor="white">
  
  <center>
  <font face="Arial" size=3 color="darkgreen">
  <b>Su carrito de compras:</b>
  </font>
  <%
  totalPedido = 0
  %>
  <form method="post" action="session_carrito.asp">
  <input name="actualizarC" type="hidden" value="1">
  <table bgcolor="lightyellow" border=1
    cellpadding=4 cellspacing=0>
  <tr bgcolor="lightgreen">
    <th>Producto</th>
    <th>Precio</th>
    <th>Cantidad</th>
  </tr>
  <% 
  FOR i = 0 TO UBOUND( carritoLocal, 2 )
  IF CarritoLocal( IDPCARRO, i ) <> "" THEN
  totalPedido = totalPedido + ( carritoLocal( PRECIOPCARRO, i ) * carritoLocal( CANTPCARRO, i ) )
  %>
  <tr>
    <td>
    <%=Server.HTMLEncode( carritoLocal( NOMBREPCARRO, i ) )%>
    </td>
    <td>
    <%=carritoLocal( PRECIOPCARRO, i ) %>
    </td>
    <td>
    <input name="cp<%=carritoLocal( IDPCARRO, i )%>" type="text" size=4
     value="<%=carritoLocal( CANTPCARRO, i )%>">
    <input name="bp<%=carritoLocal( IDPCARRO, i )%>" type="checkbox" value="1">
    Borrar
    </td>
  </tr>
  <% 
  END IF
  NEXT
  %>
    <tr bgcolor="yellow">
    <td colspan=2 align=right>
    <b>Total:</b>
    </td>
    <td>
    <%=totalPedido%>
  </td>
  </tr>
   <tr>
   <td colspan=3>
   <table border=0>
      <tr>
      <td align="right">
      <input type="submit" value="Actualizar carrito">
      </td>
    </form>
      <form method="post" action="../agencias/login_agencias.asp">
      <td>
        <input type="submit" value="Ordenar"></td>
    </form>
      <form action="default.asp">
      <td>
      <input type="submit" value="Continuar comprando">
      </td>
   </form>
   </tr>
  </td>
  </tr>
  </center>
  
  </body>
  </html>
Gracias a todos.
  #2 (permalink)  
Antiguo 03/08/2004, 10:23
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años, 11 meses
Puntos: 0
Ayudenme por favor. Me es urgente ver si pueden echarme una mano
Gracias
  #3 (permalink)  
Antiguo 03/08/2004, 10:49
 
Fecha de Ingreso: julio-2004
Ubicación: Barranquilla "La Arenosa"
Mensajes: 15
Antigüedad: 20 años, 9 meses
Puntos: 0
Si quieres leer el contenido de la variable de sesión asignáselo a una matriz y luego recorre la matriz.

matriz = Session("carrito")

Después puedes iterar a través de la matriz y obtener los valores matriz(columna,fila)

Espero te funcione
__________________
"La humildad consiste en saber que lo único que tienes bajo control es tu propia forma de actuar"
  #4 (permalink)  
Antiguo 03/08/2004, 11:42
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años, 11 meses
Puntos: 0
Según entiendo el codigo que he puesto arriba la matriz que debo leer es carritolocal pero no consigo leerla, no se si es porque no soy capaz de saber cuantas columnas tiene o por qué, pero el caso es que no la doy leido.
Gracias a todos
  #5 (permalink)  
Antiguo 03/08/2004, 16:49
 
Fecha de Ingreso: julio-2004
Ubicación: Barranquilla "La Arenosa"
Mensajes: 15
Antigüedad: 20 años, 9 meses
Puntos: 0
Cita:
Iniciado por ciberpata
Según entiendo el codigo que he puesto arriba la matriz que debo leer es carritolocal pero no consigo leerla, no se si es porque no soy capaz de saber cuantas columnas tiene o por qué, pero el caso es que no la doy leido.
Gracias a todos

¿cómo estás tratando de hacer para leer carritolocal? Para saber cuántas filas tiene la matriz debes recorrerla y ver hasta donde tiene datos, también puedes utilizar una variable de sesión que te cuente cuantos registros tiene carritolocal.

En el archivo de confirmación intenta esto y adáptalo a tus necesidades
Dim matCarritoLocal, llena
matCarritoLocal = Session("carritolocal")
llena = 'Esta debe tener el número de la última fila de la matriz que tiene datos
For iFila = LBound(matCarritoLocal,2) to llena - 1
Response.write "<tr>"
For iCol = LBound(matCarritoLocal,1) to UBound(matCarritoLocal,1)
Response.write "<td>" & matCarritoLocal(iCol, iFila)
Next
Next


Espero esto te ayude
__________________
"La humildad consiste en saber que lo único que tienes bajo control es tu propia forma de actuar"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:22.