Avatar billede friiser Nybegynder
17. maj 2000 - 21:34 Der er 12 kommentarer og
1 løsning

Stort problem HJÆLP

Jeg har et problem !!!

Jeg har følgende kode, og vil gerne have at de informationer der bliver vist på siden kan emailes til mig. Det er et bestillingssystem ( e-commerce ).

HJÆLP... hvad skal jeg gøre ?

KODEN :

<HTML>
<!-- JShop v2.2 (22nd October 1997)                        -->
<!-- by Gareth Lancaster @ Whorl (www.whorl.co.uk)        -->
<!-- SHOPPING BASKET                                      -->
<HEAD>
<TITLE>Shopping Basket</TITLE>
</HEAD>
<SCRIPT LANGUAGE="JavaScript">

    // showItems() - displays shopping basket in a table
    function showItems() {
        index = document.cookie.indexOf("TheBasket");
        countbegin = (document.cookie.indexOf("=", index) + 1);
            countend = document.cookie.indexOf(";", index);
            if (countend == -1) {
                    countend = document.cookie.length;
            }
        fulllist = document.cookie.substring(countbegin, countend);
        totprice = 0;
        document.writeln('<FORM NAME="updateform">');
        document.writeln('<TABLE BORDER>');

document.writeln('<TR><TD><b><font size=-1>Item</font></b></TD><TD><b><font size=-1>Quantity</font></b></TD><TD><b><font size=-1>Cost Each</font></b></TD><td><b><font size=-1>Total Cost</font></b><TD><b><font size=-1>Action</font></b></TD></TR>');
        itemlist = 0;
        for (var i = 0; i <= fulllist.length; i++) {
            if (fulllist.substring(i,i+1) == '[') {
                itemstart = i+1;
                thisitem = 1;
            } else if (fulllist.substring(i,i+1) == ']') {
                itemend = i;
                thequantity = fulllist.substring(itemstart, itemend);
                itemtotal = 0;
                itemtotal = (eval(theprice*thequantity));
                temptotal = itemtotal * 100;
                totprice = totprice + itemtotal;
                itemlist=itemlist+1;
                document.write('<tr><td>'+theitem+'</td>');

                document.write('<td align=right><INPUT TYPE=TEXT NAME="quant'+itemlist+'" VALUE="'+thequantity+'" SIZE=3></td><td align=right>'+theprice+'</td><td align=right>'+top.menu.alterError(itemtotal)+'</td><td><a href="java script:removeItem('+itemlist+')">Remove</a>&nbsp;<a href="java script:amendItem('+itemlist+',document.updateform.quant'+itemlist+'.value)">Update</a></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);
                thisitem++;
                itemstart=i+1;
            }
        }

        document.writeln('<tr><td colspan=3><b>Total</b></td><td align=right>'+top.menu.alterError(totprice)+'</td><td></td></tr>');
        document.writeln('</TABLE>');
        document.writeln('</FORM>');
    }

    function amendItem(itemno, newquant) {
        newItemList = null;
        itemlist = 0;
        for (var i = 0; i <= fulllist.length; i++) {
            if (fulllist.substring(i,i+1) == '[') {
                thisitem = 1;
                itemstart = i+1;
                fullstart = i+1;
            } else if (fulllist.substring(i,i+1) == ']') {
                itemend = i;
                itemlist=itemlist+1;
                if (itemlist != itemno) {
                    newItemList = newItemList+'['+fulllist.substring(fullstart, itemend)+']';
                } else {
                    newItemList = newItemList + '['+theitem+'|'+theprice+'|'+newquant+']';
                }
            } else if (fulllist.substring(i,i+1) == '|') {
                if (thisitem==1) theitem = fulllist.substring(itemstart, i);
                if (thisitem==2) theprice = fulllist.substring(itemstart, i);
                thisitem++;
                itemstart=i+1;
            }
        }
        index = document.cookie.indexOf("TheBasket");
        document.cookie="TheBasket="+newItemList;
        self.location = "bbasket.htm";

    }

    function removeItem(itemno) {
        newItemList = null;
        itemlist = 0;
        for (var i = 0; i <= fulllist.length; i++) {
            if (fulllist.substring(i,i+1) == '[') {
                itemstart = i+1;
            } else if (fulllist.substring(i,i+1) == ']') {
                itemend = i;
                theitem = fulllist.substring(itemstart, itemend);
                itemlist=itemlist+1;
                if (itemlist != itemno) {
                    newItemList = newItemList+'['+fulllist.substring(itemstart, itemend)+']';
                }
            }
        }
        index = document.cookie.indexOf("TheBasket");
        document.cookie="TheBasket="+newItemList;
        self.location = "bbasket.htm";
    }

    // clearBasket() - removes all items from the basket
    function clearBasket() {
        if (confirm('Are you sure you wish to clear the basket')) {
            index = document.cookie.indexOf("TheBasket");
            document.cookie="TheBasket=.";
            self.location = "bbasket.htm";
        }
    }
</SCRIPT>

<BODY>
<center>
<h2>Check Basket...</h2>
<p>

<!-- all these next few line do is call showItems() which -->
<!-- just creates a table - do what you like with the    -->
<!-- presentation around it!                              -->

<SCRIPT LANGUAGE="JavaScript">
    showItems();
</SCRIPT>
<p>
<form>
<input type="button" name="clear" value="Clear Basket" onClick="clearBasket()">
</form>
</center>
</BODY>
</HTML>
Avatar billede limemedia Nybegynder
17. maj 2000 - 22:19 #1
Bedste metode er gennem en formmail lignende funktion, der sender samtlige informationer. Denne funktion skal dog implementeres i Perl, PHP eller et hvilket som helst andet programmeringssprog.

Som jeg skrev til dig i en tidligere spørgsmål bliver alle disse funktioner gjort væsentligt nemmere at gå til, hvis du vælger en serverside løsning. (Du slipper for at brugere skal køre shoppingcart applikationen, og kan bedre tracke dine besøgende, deres vaner m.v.)
Avatar billede olebole Juniormester
17. maj 2000 - 22:28 #2
<ole>

Linien:
    document.writeln('<FORM NAME="updateform">');
...ændres til:
    document.writeln('<FORM NAME="updateform" action="mailto:din@mailadresse.dk">');

-----------------------------------------------------

Linierne:
        document.writeln('</TABLE>');
        document.writeln('</FORM>');
...ændres til:
        document.writeln('</TABLE>');
        document.writeln('<input type="submit" value="Send ordre">');
        document.writeln('</FORM>');

/Vh
</bole>
Avatar billede olebole Juniormester
17. maj 2000 - 22:35 #3
Endvidere (i forhold til ljweb's svar) får du en MEGET pænere formattering af ordren - men det KAN gøres i JavaScript og men 'mailto'.
Ren serverside er også noget hø, men en kombination er LANGT at foretrække!
Der er f.eks. ikke noget mere irriterende end at sidde og vente på en validering, der bliver foretaget på serveren - blot for at få at vide, noget er galt. Det ville have været rart at vide inden submit!
/Vh
Avatar billede olebole Juniormester
17. maj 2000 - 22:36 #4
...i JavaScript og med 'mailto'.
Skulle der selvfølgelig have stået ;-)
Avatar billede limemedia Nybegynder
17. maj 2000 - 22:42 #5
ole >> Sessionobjekt til at håndtere bruger identifikation, shoppingcart direkte i database. Du kan da snart ikke få noget der blivere hurtigere og nemmere...


mailto: er et alternativ, men som sagt, kan du ikke få din email formateret med informationer... Prøv dig frem, vælg hvad der passer bedst til netop din løsning.
Avatar billede friiser Nybegynder
17. maj 2000 - 23:11 #6
Ole....

Det virker ikke ???
Avatar billede olebole Juniormester
17. maj 2000 - 23:31 #7
friiser >> Jo, det gør! Det kræver selvfølgelig - som altid med mailto - at browser og mailprogram er sat op sammen.

ljweb  >> Jo, det kan jeg godt. Det jeg tænker på er validering af brugerudfyldte felter i en bestillingsform f.eks.
Det er da skod at skulle vente på at dokumentet tager en tur forbi serveren, bare for at fortælle mig, jeg glemte at skrive min mailadresse - når det nu så let kan gøres i browseren, inden jeg sender formen.
Sessionobjektet er FEDT til at checke autorisation og db-baseret shoppingcart er da LANGT at foretrække...HELT enig ;-))
Men til feltvalidering er der ikke noget så brugervenligt som clientside JavaScript!
Avatar billede limemedia Nybegynder
18. maj 2000 - 10:25 #8
ole >> feltvalidering er selvfølgelig både clientside og serverside... Clientside til at sortere de værste fra, serverside til si de sidste fra.
Avatar billede olebole Juniormester
18. maj 2000 - 15:06 #9
ljweb >> Det her er ved at tage en kedelig drejning...vi ender jo med at være rørende enige...Hehe! ;-)))
/Vh
Avatar billede olebole Juniormester
24. maj 2000 - 07:44 #10
Hva' si'r du, friiser ;-))
Avatar billede friiser Nybegynder
15. august 2000 - 12:24 #11
:)
Avatar billede limemedia Nybegynder
15. august 2000 - 13:05 #12
hvilken fail afgørelse
Avatar billede reg_guy Nybegynder
23. november 2001 - 20:26 #13
krh apf fjwo dnne alsjh \"fot fylr tig ah shtuf/
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