ColdFusion - Problemas con Listas

 
Vista:

Problemas con Listas

Publicado por David (1 intervención) el 06/05/2008 20:52:36
Buenas Tardes:

Tengo un pequeño gran problema.

Estoy intentando realizar una tienda on-line para un cliente. Me estoy guiando por un magnifico manual Macromedia COLDFUSIONMX7, sin embargo nada de lo que pone en sus ejemplos me funciona.

Lo que quiero realizar es que al pasar el id de un producto determinado a una página determinada, me le meta en una lista, array o lo que sea así como el número de unidades y unas opciones que le pasaré tb por la URL.

A la hora de visualizar el contenido de la lista array struct o cualquier cosa o me coge sólo el último producto o no me coje nada y me da error en la query de la bd.

Ésto es lo que tengo en la página que recibe los datos:

<cfparam name="#URL.id#" type="string" default=" ">

<cfparam name="CLIENT.IDList" type="string" default=" ">

<cfparam name="CLIENT.UDList" type="string" default=" ">

<cfif isNumeric("URL.id")>
<cfset currentListPos=listFind(#CLIENT.IDList#, #URL.id#)>
<cfif currentListPos eq 0>
<cfset Client.IDList=listAppend(#CLIENT.IDList#, #URL.id#)>
<cfset Client.UDList=listAppend(#CLIENT.UDList#, 1)>
<cfelse>
<cfset cont=listGetAT(#CLIENT.UDList#, #currentListPos#)>
<cfset updatecont= cont+1>
<cfset CLIENT.IDList=listSetAT(#CLIENT.UDList#, #currentListPos#, #updatecont#)>
</cfif>
<cfelse>
<cfloop from="1" to="#listLen(CLIENT.IDList)#" index="i">
<cfset id=listGetAT(#CLIENT.IDList#, i)> <CFQUERY DATASOURCE="mundi" NAME="listado">
SELECT * FROM TiendaProductos
where id_producto=#id#

</CFQUERY>
<cfif listado.recordcount NEQ 0>
<cfoutput query="listado">
Lo listo en una tabla

Necesito una solución urgente porque me estoy volviendo loco.

Muchas gracias de Antemano.
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
Imágen de perfil de Alejandro

Crear una lista de productos en una tienda en línea

Publicado por Alejandro (108 intervenciones) el 14/09/2023 17:32:02
Entiendo que estás tratando de crear una tienda en línea en ColdFusion y estás experimentando problemas para agregar productos a una lista y mostrarlos en una tabla. Vamos a abordar este problema paso a paso.

Primero, es importante asegurarse de que los datos se estén pasando correctamente a la página que recibe los datos. En tu código, estás intentando recuperar `URL.id`, que parece ser el identificador de producto, así como la cantidad (`UDList`) y las opciones.

Aquí tienes algunos pasos para resolver este problema:

1. Asegúrate de pasar los datos correctamente: Asegúrate de que estás pasando los datos a la página de destino a través de la URL de la siguiente manera (por ejemplo): `tupagina.cfm?id=1&cantidad=2&opcion=opciones`.

2. Corrige el código para agregar productos a la lista: El código que estás usando para agregar productos a la lista parece correcto en términos generales. Sin embargo, hay algunos errores de sintaxis que debes corregir. Aquí está una versión corregida:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<cfparam name="URL.id" type="string" default="">
<cfparam name="URL.cantidad" type="string" default="">
<cfparam name="URL.opcion" type="string" default="">
 
<cfif isNumeric(URL.id) and isNumeric(URL.cantidad)>
    <cfset currentListPos = listFind(CLIENT.IDList, URL.id)>
    <cfif currentListPos eq 0>
        <cfset CLIENT.IDList = listAppend(CLIENT.IDList, URL.id)>
        <cfset CLIENT.UDList = listAppend(CLIENT.UDList, URL.cantidad)>
        <cfset CLIENT.OpList = listAppend(CLIENT.OpList, URL.opcion)>
    <cfelse>
        <!-- Actualizar la cantidad o realizar otras acciones según tus necesidades -->
    </cfif>
</cfif>

Asegúrate de que estás pasando `URL.id`, `URL.cantidad`, y `URL.opcion` desde la página de origen. Esto debería agregar productos a las listas de `CLIENT.IDList`, `CLIENT.UDList`, y `CLIENT.OpList` respectivamente.

3. Mostrar los productos en una tabla: Para mostrar los productos en una tabla, puedes usar un bucle `<cfloop>` y acceder a los datos en las listas. Aquí hay un ejemplo básico:

1
2
3
4
5
6
7
8
9
<table>
  <cfloop from="1" to="#listLen(CLIENT.IDList)#" index="i">
    <tr>
      <td>Producto ID: #listGetAt(CLIENT.IDList, i)#</td>
      <td>Cantidad: #listGetAt(CLIENT.UDList, i)#</td>
      <td>Opciones: #listGetAt(CLIENT.OpList, i)#</td>
    </tr>
  </cfloop>
</table>

Este código crea una tabla que muestra los productos, sus cantidades y opciones.

Asegúrate de adaptar este código según tus necesidades específicas y la estructura de tu base de datos. También, ten en cuenta las medidas de seguridad al interactuar con la base de datos, como el uso de consultas parametrizadas (`<cfqueryparam>`) para evitar la inyección de SQL.
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