Avatar billede eds Nybegynder
20. oktober 2003 - 16:27 Der er 14 kommentarer og
1 løsning

Shopping oplysninger skal sendes i en e-mail

Hej jeg har disse tre script:

bukser.html:
<title>Bukser</title>
<script language="javascript" src="thescript.js"></script>

<form NAME=order>
Antal: <input type = "text" size = "2" maxlength = "3" name = "QUANTITY" onChange = "this.value=CKquantity(this.value)" value = "1">
<br>
Farve:
<select name = "ADDITIONALINFO">
  <option value="Sort">Sort</option>
  <option value="Blaa">Blå</option>
</select>
<p>
<input type = "button" value = "Læg i indkøbsvogn" onClick = "AddToCart(this.form)">
<input type = "hidden" name = "PRICE" value = "99.55">
<input type = "hidden" name = "NAME" value = "Bukser">
<input type = "hidden" name = "ID_NUM" value = "163484">
</form>


checkout.html:
<title>Indkøbsvogn</title>
<script language="javascript" src="thescript.js"></script>

<table>
<tr>
<td>Varenummer</td>
<td>Vare</td>
<td>Pris</td>
<td>Antal</td>
</tr>

<script>
  GetFromCart();
</script>

</table>


thescript.js:

//=====================================================================||
//              NOP Design JavaScript Shopping Cart                  ||
//                                                                    ||
// For more information on SmartSystems, or how NOPDesign can help you ||
// Please visit us on the WWW at http://www.nopdesign.com              ||
//                                                                    ||
// Javascript portions of this shopping cart software are available as ||
// freeware from NOP Design under the GPL.  You must keep this comment ||
// unchanged in your code.  For more information contact              ||
// Scott@NopDesign.com                                                ||
//                                                                    ||
// JavaScript Shop Module, V.3.0.2                                    ||
//=====================================================================||


//---------------------------------------------------------------------||
// FUNCTION:    checkForm                                              ||
// PARAMETERS:  Form object, and true/false if we should check for    ||
//              a credit card number. You shouldn't accept credit cards||
//              via email.  Only use that when you are connected to a  ||
//              secure server.                                        ||
// RETURNS:    boolean (True form is correct, False form is in error) ||
// PURPOSE:    To check form elements                                ||
//---------------------------------------------------------------------||
function checkForm(thisForm, checkForCreditCard)  {
        bFormError = false;  //Boolean variable to store form state
        bIsValidCard = false; //Boolean variable to store CC state
        strErrorList = "";    //String list of missing/errorsum fields

        if( thisForm.FIRST.value==''  ) {bFormError = true;  strErrorList += "First Name, ";}
        if( thisForm.LAST.value==''  ) {bFormError = true;  strErrorList += "Last Name, ";}
        if( thisForm.ADDRESS.value=='') {bFormError = true;  strErrorList += "Address, ";}
        if( thisForm.CITY.value==''  ) {bFormError = true;  strErrorList += "City, ";}
        if( thisForm.STATE.value==''  ) {bFormError = true;  strErrorList += "State, ";}
        if( thisForm.ZIP.value==''    ) {bFormError = true;  strErrorList += "Zip, ";}
        if( thisForm.PHONE.value==''  ) {bFormError = true;  strErrorList += "Phone, ";}
        if( thisForm.ACCOUNT.value=='') {bFormError = true;  strErrorList += "Credit Card Number, ";}
        if( thisForm.MONTH.value==''  ) {bFormError = true;  strErrorList += "Month, ";}
        if( thisForm.YEAR.value==''  ) {bFormError = true;  strErrorList += "Year ";}
        if( bFormError == true ) {
                alert("I'm sorry, but you had one or more missing or invalid entries.\n"
                    +"Please check the following fields: \n\n"
                    +strErrorList
                    +"\n\n");
                return false;
        }

                //Check for valid Visa
                if (((thisForm.ACCOUNT.value.length == 16) || (thisForm.ACCOUNT.value.length == 13)) &&
                (thisForm.ACCOUNT.value.substring(0,1) == 4))
                                bIsValidCard = true;

                //Check for valid MasterCard
                firstdig = thisForm.ACCOUNT.value.substring(0,1);
                seconddig = thisForm.ACCOUNT.value.substring(1,2);
                if ((thisForm.ACCOUNT.value.length == 16) &&
                    (firstdig == 5) && ((seconddig >= 1) &&
                        (seconddig <= 5))
                  )
                        bIsValidCard = true;

                if (bIsValidCard == false){
                        alert("I'm sorry, but you need to enter a valid credit card number.\n");
                        return false;
                }

        return needComments();
} //END function checkForm


//---------------------------------------------------------------------||
// FUNCTION:    CKquantity                                            ||
// PARAMETERS:  Quantity to                                            ||
// RETURNS:    Quantity as a number, and possible alert              ||
// PURPOSE:    Make sure quantity is represented as a number          ||
//---------------------------------------------------------------------||
function CKquantity(checkString) {

        strNewQuantity = "";    // String Adjusted Item Quantity
        count    = 0;          // Generic Loop Counter

        for (i = 0; i < checkString.length; i++) {
                ch = checkString.substring(i, i+1);

                if ((ch >= "0" && ch <= "9") || (ch == '.')) {
                        strNewQuantity += ch;
                }
        }

        if (strNewQuantity.length < 1)
                strNewQuantity = "1";

        return strNewQuantity;
}


//---------------------------------------------------------------------||
// FUNCTION:    AddToCart                                              ||
// PARAMETERS:  Form Object                                            ||
// RETURNS:    Cookie to user's browser, with prompt                  ||
// PURPOSE:    Adds a product to the user's shopping cart            ||
//---------------------------------------------------------------------||
function AddToCart(thisForm) {

        iNumberOrdered = 0;  //Integer number of products already ordered

        iNumberOrdered = GetCookie("NumberOrdered");
        iNumberOrdered++;

        if ( iNumberOrdered > 12 )
                alert("I'm Sorry, your cart is full, please proceed to checkout.");
        else {
                dbUpdatedOrder = thisForm.QUANTITY.value + "|"
                                + thisForm.PRICE.value  + "|"
                                + thisForm.ID_NUM.value + "|"
                                + thisForm.NAME.value;

                NewOrder = "Order." + iNumberOrdered;
                SetCookie (NewOrder, dbUpdatedOrder, null, "/");
                SetCookie ("NumberOrdered", iNumberOrdered, null, "/");

                notice = thisForm.QUANTITY.value + " "
                        + thisForm.NAME.value
                        + " added to your shopping cart.";

                alert(notice);
        }
}


//---------------------------------------------------------------------||
// FUNCTION:    getCookieVal                                          ||
// PARAMETERS:  offset                                                ||
// RETURNS:    URL unescaped Cookie Value                            ||
// PURPOSE:    Get a specific value from a cookie                    ||
//---------------------------------------------------------------------||
function getCookieVal (offset) {
        var endstr = document.cookie.indexOf (";", offset);
        if (endstr == -1)
                endstr = document.cookie.length;
        return unescape(document.cookie.substring(offset, endstr));
}


//---------------------------------------------------------------------||
// FUNCTION:    FixCookieDate                                          ||
// PARAMETERS:  date                                                  ||
// RETURNS:    date                                                  ||
// PURPOSE:    Fixes cookie date, stores back in date                ||
//---------------------------------------------------------------------||
function FixCookieDate (date) {
        var base = new Date(0);
        var skew = base.getTime();
        date.setTime (date.getTime() - skew);
}


//---------------------------------------------------------------------||
// FUNCTION:    GetCookie                                              ||
// PARAMETERS:  Name                                                  ||
// RETURNS:    Value in Cookie                                        ||
// PURPOSE:    Retrieves cookie from users browser                    ||
//---------------------------------------------------------------------||
function GetCookie (name) {
        var arg = name + "=";
        var alen = arg.length;
        var clen = document.cookie.length;
        var i = 0;
        while (i < clen)
                {
                var j = i + alen;
                if (document.cookie.substring(i, j) == arg) return getCookieVal (j);
                i = document.cookie.indexOf(" ", i) + 1;
                if (i == 0) break;
                }

        return null;
}


//---------------------------------------------------------------------||
// FUNCTION:    SetCookie                                              ||
// PARAMETERS:  name, value, expiration date, path, domain, security  ||
// RETURNS:    Null                                                  ||
// PURPOSE:    Stores a cookie in the users browser                  ||
//---------------------------------------------------------------------||
function SetCookie (name,value,expires,path,domain,secure) {
        document.cookie = name + "=" + escape (value) +
                        ((expires) ? "; expires=" + expires.toGMTString() : "") +
                        ((path) ? "; path=" + path : "") +
                        ((domain) ? "; domain=" + domain : "") +
                        ((secure) ? "; secure" : "");
}


//---------------------------------------------------------------------||
// FUNCTION:    DeleteCookie                                          ||
// PARAMETERS:  Cookie name, path, domain                              ||
// RETURNS:    null                                                  ||
// PURPOSE:    Removes a cookie from users browser.                  ||
//---------------------------------------------------------------------||
function DeleteCookie (name,path,domain) {
        if (GetCookie(name)) {
                document.cookie = name + "=" +
                                ((path) ? "; path=" + path : "") +
                                ((domain) ? "; domain=" + domain : "") +
                                "; expires=Thu, 01-Jan-70 00:00:01 GMT";
        }
}


//---------------------------------------------------------------------||
// FUNCTION:    MoneyFormat                                            ||
// PARAMETERS:  Number to be formatted                                ||
// RETURNS:    Formatted Number                                      ||
// PURPOSE:    Reformats Dollar Amount to #.## format                ||
//---------------------------------------------------------------------||
function moneyFormat(input) {
        var dollars = Math.floor(input)
        var tmp = new String(input)
        for (var decimalAt = 0; decimalAt < tmp.length; decimalAt++) {
                if (tmp.charAt(decimalAt)==".")
                        break;
        }

        var cents  = "" + Math.round(input * 100)
        cents = cents.substring(cents.length-2, cents.length)
        dollars += ((tmp.charAt(decimalAt+2)=="9")&&(cents=="00"))? 1 : 0;

        return dollars + "." + cents
}


//---------------------------------------------------------------------||
// FUNCTION:    RemoveFromCart                                        ||
// PARAMETERS:  Order Number to Remove                                ||
// RETURNS:    Null                                                  ||
// PURPOSE:    Removes an item from a users shopping cart            ||
//---------------------------------------------------------------------||
function RemoveFromCart(RemOrder) {
        if (confirm("Click 'Ok' to remove this product from your shopping cart.")) {
                NumberOrdered = GetCookie("NumberOrdered");
                for(i=RemOrder; i <  NumberOrdered; i++) {
                        NewOrder1 = "Order." + (i+1);
                        NewOrder2 = "Order." + (i);
                        database = GetCookie(NewOrder1);
                        SetCookie (NewOrder2, database, null, "/");
                }
                NewOrder = "Order." + NumberOrdered;
                SetCookie ("NumberOrdered", NumberOrdered-1, null, "/");
                DeleteCookie(NewOrder, "/");
                location.href=location.href;
        }
}


//---------------------------------------------------------------------||
// FUNCTION:    GetFromCart                                            ||
// PARAMETERS:  Null                                                  ||
// RETURNS:    Product Table Written to Document                      ||
// PURPOSE:    Draws current cart product table on HTML page          ||
//---------------------------------------------------------------------||
function GetFromCart() {
        NumberOrdered = 0;
        Total=0;
        TOTotal=0;
        TOquantity = " ";
        TOprice = " ";
        TOid_num = " ";
        TOname = " ";
        NumberOrdered = GetCookie("NumberOrdered");
        whattowrite = "";

        for (i = 1; i <= NumberOrdered; i++) {
                NewOrder = "Order." + i;
                database = "";
                database = GetCookie(NewOrder);

                Token0 = database.indexOf("|", 0);
                Token1 = database.indexOf("|", Token0+1);
                Token2 = database.indexOf("|", Token1+1);

                fields = new Array;
                fields[0] = database.substring( 0, Token0 );
                fields[1] = database.substring( Token0+1, Token1 );
                fields[2] = database.substring( Token1+1, Token2 );
                fields[3] = database.substring( Token2+1, database.length );

                Total = Total + (fields[1] * fields[0]);
                TOTotal = moneyFormat(Total);

                whattowrite += "<tr><td>" + fields[2] + "</td><td><font size=-1>"
                                + fields[3] + "</font></td><td>$" + fields[1]
                                + "</td><td><input type=text size=2 name=\"QUANTITY_"+ i +"\" value=\""
                                + fields[0] + "\"></td>"
                                + "<td><input type=button value=\"  Remove  \" onClick=\"RemoveFromCart("+i+")\"></td>"
                                + "<input type=hidden name=\"ID_"+ i +"\" value=\"" + fields[2] + "\">"
                                + "<input type=hidden name=\"NAME_"+ i +"\" value=\"" + fields[3] + "\">"
                                + "<input type=hidden name=\"PRICE_"+ i +"\" value=\"" + fields[1] + "\">";
        }

        document.write(whattowrite);
        document.write("</td></tr><tr><td colspan=2><b>SUBTOTAL</b></td><td>$");
        document.write(TOTotal);
        document.write("</td><td></td>");
}


//---------------------------------------------------------------------||
// FUNCTION:    WriteToForm                                            ||
// PARAMETERS:  Null                                                  ||
// RETURNS:    Product hidden fields Written to Document              ||
// PURPOSE:    Draws current cart product hidden fields on HTML form  ||
//---------------------------------------------------------------------||
function WriteToForm() {
        NumberOrdered = 0;
        Total=0;
        TOTotal=0;
        TOquantity = " ";
        TOprice = " ";
        TOid_num = " ";
        TOname = " ";
        NumberOrdered = GetCookie("NumberOrdered");
        whattowrite = "";

        for (i = 1; i <= NumberOrdered; i++) {
                NewOrder = "Order." + i;
                database = "";
                database = GetCookie(NewOrder);

                Token0 = database.indexOf("|", 0);
                Token1 = database.indexOf("|", Token0+1);
                Token2 = database.indexOf("|", Token1+1);

                fields = new Array;
                fields[0] = database.substring( 0, Token0 );
                fields[1] = database.substring( Token0+1, Token1 );
                fields[2] = database.substring( Token1+1, Token2 );
                fields[3] = database.substring( Token2+1, database.length );

                Total = Total + (fields[1] * fields[0]);
                TOTotal = moneyFormat(Total);

                document.write("<input type=hidden name=\"ID_"+ i +"\" value=\"" + fields[2] + "\">");
                document.write("<input type=hidden name=\"NAME_"+ i +"\" value=\"" + fields[3] + "\">");
                document.write("<input type=hidden name=\"PRICE_"+ i +"\" value=\"" + fields[1] + "\">");
                document.write("<input type=hidden name=\"QUANTITY_"+ i +"\" value=\"" + fields[0] + "\">");
        }
}


//=====================================================================||
//              END NOP Design SmartPost Shopping Cart                ||
//                              V.3.0.1                                ||
//=====================================================================||

Jeg vil gerne have ændret det sådan så oplysningerne fra checkout.html bliver sendt til en forudbestemt e-mail adresse, altså som en e.mail form.
Håber i kan hjælpe.
Avatar billede roenving Novice
20. oktober 2003 - 16:32 #1
Så skal du spørge din ISP (Internet Service Provider) om han har et formmail-script på serveren !-)
Avatar billede roenving Novice
20. oktober 2003 - 16:34 #2
Javascript kan nemlig ikke sende mails, men din form kunne jo have en action="mailto:navn@domaine.dk" method="POST"
Avatar billede eds Nybegynder
20. oktober 2003 - 16:41 #3
Ja sådan en vil jeg godt have er den svær at lave og gider du sætte den ind så får du ihverfald nogle ledt tjente points ;-)
(hvis det så virker)
Avatar billede roenving Novice
20. oktober 2003 - 16:45 #4
<form NAME="order" action="mailto:navn@domaine.dk" method="POST">

-- ulempen er, at det bliver brugerens mail-program, som åbner og så skal brugeren selv aktivt sende, hvis din ISP havde en formmail kunne du automatisere det usynligt for brugeren !-)

Prøv at søge lidt på deres hjemmeside ...
Avatar billede eds Nybegynder
20. oktober 2003 - 16:48 #5
Så siger den fejl i linje 5 dette er min klide kode:
<form NAME="order" action="mailto:navn@domaine.dk" method="POST">
Avatar billede eds Nybegynder
20. oktober 2003 - 16:49 #6
Hov jeg mente:
<title>Indkøbsvogn</title>
<script language="javascript" src="thescript.js"></script>

<script language="JavaScript">
<form NAME="order" action="mailto:navn@domaine.dk" method="POST">
</script>
<table>
<tr>
<td>Varenummer</td>
<td>Vare</td>
<td>Pris</td>
<td>Antal</td>
</tr>

<script>
  GetFromCart();
</script>

</table>
Avatar billede roenving Novice
20. oktober 2003 - 16:53 #7
Du må ikke sætte script rundt om et html-tag som <form ...> !-)
Avatar billede eds Nybegynder
20. oktober 2003 - 16:54 #8
Ehm.. gider du ikke godt gøre det jeg er ikke ligefrem verdensmester i html ;-)
Avatar billede roenving Novice
20. oktober 2003 - 17:04 #9
<title>Indkøbsvogn</title>
<script language="javascript" src="thescript.js"></script>

<form NAME="order" action="mailto:navn@domaine.dk" method="POST">
<table>
<tr>
<td>Varenummer</td>
<td>Vare</td>
<td>Pris</td>
<td>Antal</td>
</tr>

<script>
  GetFromCart();
</script>

</table>
Avatar billede eds Nybegynder
20. oktober 2003 - 17:09 #10
Hvordan får jeg den så til at sende denne order.
Avatar billede eds Nybegynder
20. oktober 2003 - 17:39 #11
Altså jeg mener der ikke nogle stede hvor der står send eller bestil eller sådan noget.
Avatar billede roenving Novice
21. oktober 2003 - 00:30 #12
-- der må mangle den sidste html-fil, som indeholder godkendelsen, for du har såvidt jeg kan se formen til enkeltvarer og formularen til at vise indkøbsvognen, men der mangler den sidste formular, med en form, som indeholder send-knappen !-)
Avatar billede eds Nybegynder
21. oktober 2003 - 13:28 #13
Ok hvad skal man så gøre.
Avatar billede eds Nybegynder
21. oktober 2003 - 21:53 #14
Har fundet en løsning:
http://www.nopdesign.com/freecart/
Avatar billede roenving Novice
22. oktober 2003 - 00:41 #15
-- og tak for hjælpen !-|
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester