Hola tengo una consulta sobre una web que me han pedido comprobar, resulta que la web tiene una tienda on-line en la cual el cliente puede comprar diferentes cestas de regalo y a estas cestas añadirle un producto extra de cuatro que tienen activos, el problema llega al añadirle el producto extra, en el carro de la compra multiplica el precio de este producto por 100, dejando el precio de la cesta correctamente, es decir: si compro la
Cesta Terciopelo rojo que cuesta 50 € y le añado el producto extra
Osito azul que cuesta 15 € en el carro de la compra se me visualiza la cesta con un precio de 50 € y el osito de peluche con un precio de 1500 € sumandome en el total estos dos últimos precios.
¿Cuál podría ser el problema? A continuación os dejo el código de los diferentes archivos que influyen en dicho proceso.
Archivo cestas_detalle.asp
Código:
<%
response.codepage=1252
if Trim(ficha("foto1"))="" then
img="sinfoto.png"
else
img=Trim(ficha("foto1"))
end if%>
<h1 class="centro ancho"><span class="negro">CESTA <%=UCASE(ficha("nom_categoria"))%></span>
- <%=UCASE(ficha("nom_cesta"))%></h1>
<a href="images/fotos/<%=img%>" class="ampliada"><img src="images/fotos/<%=img%>" width="448" height="337" alt="CESTA <%=UCASE(ficha("nom_categoria"))%>- <%=ficha("nom_cesta")%>" border="0"/></a>
<div class="fotoscomp">
<!-- Nuria: esta división es la que he añadido para los porductos complementarios -->
<table summary="Listado de Noticias">
<caption>
<h3 style="font-size:14px;"><span class="granate">Quiero añadir a mi cesta</span></h3>
</caption>
<thead>
<tr>
<th><p style="font-size:12px;">Seleccionar:</p> </th>
<th><p></p></th>
<th><p></p></th>
</tr>
</thead>
<tbody>
<FORM METHOD=POST ACTION="carro_insertar.asp" name="formu" id="formu">
<INPUT TYPE="hidden" NAME="produ1" value="<%=Trim(ficha("nom_cesta"))%>|<%=Trim(ficha("precio"))%>">
<INPUT TYPE="hidden" NAME="id1" value="<%=Trim(ficha("Id_cesta"))%>">
<%
Function ConvertFromUTF8(sIn)
Dim oIn
Set oIn = CreateObject("ADODB.Stream")
oIn.Open
oIn.CharSet = "WIndows-1252"
oIn.WriteText Sin
oIn.Position = 0
oIn.CharSet = "UTF-8"
ConvertFromUTF8 = oIn.ReadText
oIn.Close
End Function
Id_cesta=Request.QueryString("id")
set listado=server.CreateObject("ADODB.recordset")
SQL="SELECT Id_asociacion,titulo,foto,precio,descripcion FROM asociaciones,productos where asociaciones.Id_producto=productos.Id_producto and asociaciones.Id_cesta= " & Id_cesta & " ORDER BY titulo "
listado.open SQL, STRING_flor, 1, 3
n=2
While Not listado.eof
titulo=listado("titulo")
precio=FormatNumber(listado("precio"),2)
precio=Replace(precio,".",",")
descripcion=listado("descripcion")
titulo=ConvertFromUTF8(titulo)
descripcion=ConvertFromUTF8(descripcion)
%>
<tr>
<td><input type="checkbox" name="ch<%=n%>" onClick="if(this.checked==true){produ<%=n%>.value='<%=titulo&"|"&precio%>'}else{produ<%=n%>.value=''}">
<INPUT TYPE="hidden" NAME="produ<%=n%>"> </td>
<td> <img src="GESTION/FotosProductosCom/<%=listado("foto")%>" width="150" height="100" alt="" /></td>
<td><h3><%=titulo%></h3>
<br/> <%=descripcion%><br/> <strong>P.V.P: <span class="granate"><%=precio%> €
</span></strong> </td>
<!-- el coste de lo que seleccionen debe añadirse al coste del carro de la compra, por ejemplo
si seleccionan una cesta y café, aparece en el carrito, la cesta, el café y el coste de cada uno y sumado añ final en la tabla
DEben de poder subir la foto, el titular, la descripción y el precio -->
</tr>
<%
n=n+1
listado.movenext
Wend
%>
<INPUT TYPE="hidden" NAME="contprodu" value="<%=n-1%>">
</FORM></tbody>
</table>
</div>
</div>
<div class="segundo">
<div class="descripcion">
<div class="texto detalles2">
<p><%=Trim(ficha("descripcion"))%></p>
<strong class="granate">MEDIDAS:</strong> <strong><%=ficha("medidas")%></strong>
</div>
<div class="limpio"></div>
<div class="detallesmas">
<%precio=FormatNumber(ficha("precio"),2)
precio=Replace(precio,".",",")&" €"%>
<div class="detalle1"><strong>P.V.P:<span class="granate"> <%=precio%></span></strong></div>
<div class="detalle2">
<div class="detalles3"><a href="javascript:document.getElementById('formu').submit();"><img type="image" src="images/carro.jpg" alt="Comprar" /></a></div>
</div>
</div>
<div class="limpio"></div>
<div class="fotos">
<p><img src="images/ver-detalles.jpg" alt="Ver detalles" /></p>
</div>
<div class="fotosb">
<%Dim imagenes(8)
For i=1 to 8
if ficha("foto"&i)<>"" then
imagenes(i)=Trim(ficha("foto"&i))
else
imagenes(i)="sinfoto.png"
end if
Next%>
<div class="limpio detalles4"> </div>
<%For i=1 to 8%>
<div class="ces14">
<%if Trim(imagenes(i))<>"sinfoto.png" then%>
<a href="images/fotos/<%=imagenes(i)%>" alt="Detalles de la cesta" class="ampliada"><img src="images/fotos/<%=imagenes(i)%>" alt="CESTA <%=UCASE(ficha("nom_categoria"))%>- <%=ficha("nom_cesta")%>" width="100" height="65"/></a>
<%else%>
<img src="images/fotos/sinfoto.png" alt="CESTA <%=UCASE(ficha("nom_categoria"))%>- <%=ficha("nom_cesta")%>" width="100" height="65"/>
<%end if%>
</div>
<%Next%>
Archivo carro_insertar.asp
Código:
<%
If session("num_prod")="" then
session("num_prod")=0
End if
session.codepage=1252
conta=request.Form("contprodu")
For n=1 To conta
If request.Form("produ" & n)<>"" Then
session("num_prod")= session("num_prod") +1
session("id" &session("num_prod"))=request.Form("id1")
session("linea" & session("num_prod"))=session("num_prod")
arra = Split(request.Form("produ" & n), "|")
session("nombre" & session("num_prod"))=arra(0)
session("precio" & session("num_prod"))=arra(1)
If session("cantidad"& session("num_prod"))="" then
session("cantidad"& session("num_prod"))=1
End if
End if
Next
response.redirect("carro_mostrar1.asp")
Sub borra_producto(i)
session("producto" & i) = 0
End Sub
%>
Archivo carro_mostra1.asp
Código:
<%
Function ConvertFromUTF8(sIn)
Dim oIn
Set oIn = CreateObject("ADODB.Stream")
oIn.Open
oIn.CharSet = "WIndows-1252"
oIn.WriteText Sin
oIn.Position = 0
oIn.CharSet = "UTF-8"
ConvertFromUTF8 = oIn.ReadText
oIn.Close
End Function
If request.querystring("tipo") = 1 then
For a=1 To session("num_prod")
session("cantidad"&a)=request.Form("cantidad" &a)
Next
response.redirect("carro_mostrar1.asp")
End if
%>
<FORM id="formu" name="formu" METHOD=POST ACTION="carro_mostrar1.asp?tipo=1" >
<table style="margin-top:30px;" cellpadding="0" cellspacing="0" align="center" width="773" border="1" bordercolor="#CCCCCC">
<tr>
<th width="328" height="32" align="center" bgcolor="#eeac4d"><strong>CESTA</strong></th>
<th width="104" align="center" bgcolor="#eeac4d"><strong>CANTIDAD</strong></th>
<th width="95" align="center" bgcolor="#eeac4d"><strong>PRECIO</strong></th>
<th width="121" align="center" bgcolor="#eeac4d"><strong>SUBTOTAL</strong></th>
<th width="123" align="center" bgcolor="#eeac4d"><strong>ELIMINAR</strong></th>
</tr>
<%
For a=1 To session("num_prod")
If session("linea"&a)<>0 then
subtotal=(session("precio"&a))*(session("cantidad"&a))
%>
<tr>
<td height="28" align="center"><%=(session("nombre"&a))%></td>
<td align="center"><INPUT TYPE="text" NAME="cantidad<%=a%>" value="<%=session("cantidad"&a)%>" size="5" style="text-align:right"></td>
<td align="center"><%=FormatNumber(session("precio"&a),2)%> €</td>
<td align="center"><%=FormatNumber(subtotal,2)%> €</td>
<td align="center"><A HREF="carro_eliminar.asp?id=<%=session("linea"&a)%>"><img src="images/eliminar.jpg" width="48" height="15" alt=""/></a></td>
</tr>
<%
total=total + subtotal
End if
Next
%>
<tr>
<td height="28" colspan="6" align="right" class="textog">El precio total I.V.A. incluido al que asciende su compra es de <%=FormatNumber(total,2)%> €
<%
session("totalCompra")=FormatNumber(total,2)
%>
El orden de ejecución de los archivos es: se realiza el pedido en cestas_detalle.asp, desde el formulario se pasa la información a carro_insertar.asp y el carro de la compra se muestra en carro_mostrar1.asp.
La base de datos es un archivo de access y hemos comprobado que este todo bien.
la url de la página para que hagis las pruebas es:
http://www.florfruitseventos.com/cestas.asp, una vez allí se entra en una de las categorías y se compra una de las cestas añadiendo algún producto extra.