
12/04/2007, 16:09
|
| | Fecha de Ingreso: julio-2003 Ubicación: Barcelona
Mensajes: 142
Antigüedad: 21 años, 8 meses Puntos: 1 | |
problema con carrito de la compra Buenas a todos
debisos a mis escasos conocimientos de .asp, me he baado una version demo del carrito de midicart, el cual tiene la limitacion de que en el formualrio dinal no te envia d
el detalle de los articulos, solo el importe y los datos del formulario.
ME podriais echar un cable???
El formulario final dice algo asi mediante una funcion javascrpt/asp:
Código:
<!-- #INCLUDE FILE="settings.asp" -->
<html>
<head>
<TITLE>MidiCart ASP - Evaluation Version</TITLE>
<link rel="stylesheet" HREF="master_style.css">
</head>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#660101" VLINK="#660101" ALINK="#F70404">
<%
Function RandNo()
Randomize
RandNo = Int(99999999 * Rnd + 3)
End Function
%>
<form onSubmit="return form_validator(this)" action="order_final.asp" method=post>
<INPUT TYPE="hidden" NAME="order_id" VALUE="<%=RandNo()%>" SIZE="40">
<script LANGUAGE="JavaScript">
function alterError(value) {
if (value<=0.99) {
newDollar = '0';
} else {
newDollar = parseInt(value);
}
newCent = parseInt((value+.0008 - newDollar)* 100);
if (eval(newCent) <= 9) newCent='0'+newCent;
newString = newDollar + '.' + newCent;
return (newString);
}
// showItems in orderform
function showItems() {
index = document.cookie.indexOf("ShoppingBasket");
countbegin = (document.cookie.indexOf("=", index) + 1);
countend = document.cookie.indexOf(";", index);
if (countend == -1) {
countend = document.cookie.length;
}
fulllist = document.cookie.substring(countbegin, countend);
subtotal = 0;
subweight = 0;
document.writeln('<table cellpadding="2" cellspacing="1" border="0">');
document.writeln('<TR><TD BGCOLOR="#B3B3B3"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"><b><%=txt_qty%></b></FONT></TD><TD BGCOLOR="#B3B3B3"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"><b><%=txt_code_no%></b></FONT></TD><TD BGCOLOR="#B3B3B3"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"><b><%=txt_item%></b></FONT></TD><TD BGCOLOR="#B3B3B3"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"><b><%=txt_price%> <%=txt_currency%></b></FONT></TD><td BGCOLOR="#B3B3B3"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"><b><%=txt_total%></b></FONT></td></TR>');
itemlist = 0;
for (var i = 0; i <= fulllist.length; i++) {
if (fulllist.substring(i,i+1) == '[') {
thisitem = 1;
itemstart = i+1;
} else if (fulllist.substring(i,i+1) == ']') {
itemend = i;
thequantity = fulllist.substring(itemstart, itemend);
itemtotal = 0;
itemtotal = (eval(theprice*thequantity));
temptotal = itemtotal * 100;
subtotal = subtotal + itemtotal;
weighttotal = 0;
weighttotal = (eval(theweight*thequantity));
subweight = subweight + weighttotal;
itemlist=itemlist+1;
document.write('<tr><td align=middle BGCOLOR="#D9D9D9"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif">'+thequantity+'</FONT></td>');
document.writeln('<td BGCOLOR="#D9D9D9"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"><a href=item_show.asp?code_no='+thenumber+'>'+thenumber+'</A></FONT></td><td align=left BGCOLOR="#D9D9D9"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"><a href=item_show.asp?code_no='+thenumber+'>'+theitem+'</A></FONT></td><td align=right BGCOLOR="#D9D9D9"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif">'+theprice+'</FONT></td><td align=right BGCOLOR="#D9D9D9"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif">'+alterError(itemtotal)+'</FONT></td></tr>');
} else if (fulllist.substring(i,i+1) == '|') {
if (thisitem==1) theitem = fulllist.substring(itemstart, i);
if (thisitem==2) theprice = fulllist.substring(itemstart, i);
if (thisitem==3) thenumber = fulllist.substring(itemstart, i);
if (thisitem==4) theweight = fulllist.substring(itemstart, i);
thisitem++;
itemstart=i+1;
}
}
totprice = (Math.round(subtotal*100)/100);
shipping = subweight+<%=add_freight%>;
totalcost = (totprice+shipping);
tax = (Math.round(totalcost*<%=add_tax%>)/100);
document.writeln('<tr><td align=right BGCOLOR="#B3B3B3" colspan=4><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"><b><%=txt_product_total%></b></FONT></td><td align=right BGCOLOR="#D9D9D9"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif">'+alterError(totprice)+'</FONT></td></tr>');
document.writeln('<tr><td align=right BGCOLOR="#B3B3B3" colspan=4><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"><b><%=txt_shipping%></b></FONT></td><td align=right BGCOLOR="#D9D9D9"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif">'+alterError(shipping)+'</FONT></td></tr>');
<%if add_tax > "0" then%>
document.writeln('<tr><td align=right BGCOLOR="#B3B3B3" colspan=4><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"><b><%=txt_tax%></b></FONT></td><td align=right BGCOLOR="#D9D9D9"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif">'+alterError(tax)+'</FONT></td></tr>');
<% end if %>
document.writeln('<tr><td align=right BGCOLOR="#B3B3B3" colspan=4><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"><b><%=txt_grand_total%> <%=txt_currency%></b></FONT></td><td align=right BGCOLOR="#D9D9D9"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif">'+alterError(totalcost+tax)+'</FONT></td></tr>');
document.writeln('<INPUT TYPE="hidden" NAME="total" VALUE="'+alterError(totalcost+tax)+'" SIZE="40">');
document.writeln('</TABLE>');
}
</script>
<center><font size="5" face="Verdana, Arial, Helvetica, sans-serif"><b><%=txt_order_form%></B></FONT>
<BR><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Invoice / Money Order</B></FONT></center>
<HR WIDTH=90% size=1 COLOR="#000000">
<CENTER>
<script LANGUAGE="JavaScript">
showItems();
</script></CENTER>
<BR>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<DIV align="center"><%=txt_provide_information%></DIV>
</FONT>
<CENTER>
y el formulario que recupera y envia mediante ASPMAIL es este:
Código:
<!-- #INCLUDE FILE="settings.asp" -->
<%
strHost = smtp_server
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.RemoteHost = strHost
Mailer.FromName = Request.form("email")
Mailer.Subject = "Online Order - " & company_name & " - " &Request.form("order_id")
Mailer.FromAddress = Request.form("email")
Mailer.AddRecipient Request.form("namn"), Request.form("email")
Mailer.AddCC "", "" & receipt & ""
Mailer.BodyText = "Invoice - Order Number = "&Request.form("order_id")& vbcrlf & vbcrlf&_
Request.form("email")& vbcrlf&_
Request.form("company")& vbcrlf&_
Request.form("name")& vbcrlf&_
Request.form("address")& vbcrlf&_
Request.form("address2")& vbcrlf&_
Request.form("city")& vbcrlf&_
Request.form("state")& vbcrlf&_
Request.form("zip")& vbcrlf&_
Request.form("country")& vbcrlf&_
Request.form("phone")& vbcrlf & vbcrlf&_
Request.form("comment")& vbcrlf & vbcrlf&_
"Total " & txt_currency & " " & Request.form("total") & vbcrlf & vbcrlf&_
"Order" & vbcrlf&_
"Sorry, no items in this demo order"& vbcrlf & vbcrlf&_
if Mailer.SendMail then
Response.redirect "response.asp"
else
Response.Write "Mail send failure. Error was " & Mailer.Response
end if
%>
¿alguien sabe como puedo recuperar los items para que este form los envio junto al resto de los datos??
muchas gracias |