Avatar billede snigeren Nybegynder
26. september 2005 - 13:46 Der er 8 kommentarer og
1 løsning

php mail: send indhold af indkøbskurv til mail

På det site jeg er ved at lave er der en indkøbskurv, som forhåbentlig bliver fyldt med varer... Der er ikke noget betalings system på siden. Indholdet af indkøbskurven skal derfor bare sendes til sælgeren og en bekræftelse skal sendes til køberen.

Er der nogen der kan hjælpe mig her?

Indkøbskurven kan f.eks. være fyldt således:
http://www.triodimenzionale.dk/misc/mailphp.jpg

Hver vare har så følgende parametre der skal følge med: itemName, itemType, itemQty, itemPrice,.. derudover skal total prisen jo oxo gerne med.

Håber nogen kan hjælpe
/Snig
Avatar billede jackass- Nybegynder
26. september 2005 - 14:15 #1
Giv hver <select> et ID der afspejler varen - fx det vare-id som den har i databasen:

<select name="213" id="213">
    <option value="1">1</option>
    <option value="2">2</option>
</select>

..osv for hver vare. Når brugeren så trykker "Bestil", kan du i din forms action-script SELECT'e de informationer du skal bruge om hver vare, som du skal bruge; altså itemName, itemType, itemQty, itemPrice osv..

For at sende mails kan du bruge mail() funktionen.
Avatar billede jackass- Nybegynder
26. september 2005 - 14:19 #2
Altså eksempelvis:

$sql = "SELECT ID, itemName, itemType, itemQty, itemPrice FROM product_table WHERE id='DIT-VARE-ID'";
Avatar billede snigeren Nybegynder
26. september 2005 - 14:27 #3
uff,.. jeg er godt nok lidt n00b til php... kan du måske uddybe lidt mere?
Avatar billede snigeren Nybegynder
26. september 2005 - 15:13 #4
altså det jeg prøver på at lave er en knap på shopping cart siden der sender indholdet til sælgeren.

Hvis man vil have en bekræftelse, skriver man sin email ind i et field og så sender den også en bekræftelse til køber
Avatar billede jackass- Nybegynder
26. september 2005 - 15:30 #5
sniger.. vi er enige om, at de 3 produkter som ses på http://www.triodimenzionale.dk/misc/mailphp.jpg er nogle produktnavne og stykpris m.v. som er hentet i en database, ikk?

(skal lige afklares inden jeg kommer med et eksempel)
Avatar billede snigeren Nybegynder
26. september 2005 - 15:35 #6
yep det er rigtig de bliver hentet ind i en form fra en database...
En kammerat har oxo lige pointeret at jeg jo skal have tømt indkøbskurven når bestillingen er sendt,.. er det oxo meget besværligt at gøre?

Jeg smider lige koden til min cart.php her:

<?php

    include("db.php");
       
    switch($_GET["action"])
    {
        case "add_item":
        {
            AddItem($_GET["id"], $_GET["qty"]);
            ShowCart();
            break;
        }
        case "update_item":
        {
            UpdateItem($_GET["id"], $_GET["qty"]);
            ShowCart();
            break;
        }
        case "remove_item":
        {
            RemoveItem($_GET["id"]);
            ShowCart();
            break;
        }
        default:
        {
            ShowCart();
        }
    }

    function AddItem($itemId, $qty)
    {
        // Will check whether or not this item
        // already exists in the cart table.
        // If it does, the UpdateItem function
        // will be called instead
       
        global $dbServer, $dbUser, $dbPass, $dbName;

        // Get a connection to the database
        $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
       
        // Check if this item already exists in the users cart table
        $result = mysql_query("select count(*) from cart where cookieId = '" . GetCartId() . "' and itemId = $itemId");
        $row = mysql_fetch_row($result);
        $numRows = $row[0];
       
        if($numRows == 0)
        {
            // This item doesn't exist in the users cart,
            // we will add it with an insert query

            @mysql_query("insert into cart(cookieId, itemId, qty) values('" . GetCartId() . "', $itemId, $qty)");
        }
        else
        {
            // This item already exists in the users cart,
            // we will update it instead
           
            UpdateItem($itemId, $qty);
        }
    }
   
    function UpdateItem($itemId, $qty)
    {
        // Updates the quantity of an item in the users cart.
        // If the qutnaity is zero, then RemoveItem will be
        // called instead

        global $dbServer, $dbUser, $dbPass, $dbName;

        // Get a connection to the database
        $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
       
        if($qty == 0)
        {
            // Remove the item from the users cart
            RemoveItem($itemId);
        }
        else
        {
            mysql_query("update cart set qty = $qty where cookieId = '" . GetCartId() . "' and itemId = $itemId");
        }
    }
   
    function RemoveItem($itemId)
    {
        // Uses an SQL delete statement to remove an item from
        // the users cart

        global $dbServer, $dbUser, $dbPass, $dbName;

        // Get a connection to the database
        $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
       
        mysql_query("delete from cart where cookieId = '" . GetCartId() . "' and itemId = $itemId");
    }
   
    function ShowCart()
    {
        // Gets each item from the cart table and display them in
        // a tabulated format, as well as a final total for the cart
       
        global $dbServer, $dbUser, $dbPass, $dbName;

        // Get a connection to the database
        $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
       
        $totalCost = 0;
        $result = mysql_query("select * from cart inner join items on cart.itemId = items.itemId where cart.cookieId = '" . GetCartId() . "' order by items.itemName asc");
        ?>
<html>
<head>
<title>Jernbanemaerker.dk - Indk&oslash;bskurv</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css/styles.css" rel="stylesheet" type="text/css">
<script language="JavaScript">

    function UpdateQty(item)
    {
    itemId = item.name;
    newQty = item.options[item.selectedIndex].text;
       
    document.location.href = 'cart.php?action=update_item&id='+itemId+'&qty='+newQty;
    }
       
</script>
</head>

<body bgcolor="#D8C5A3">
<table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr align="right" valign="top">
    <td width="900" height="143" class="top"><table width="555" height="138" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td align="left" valign="bottom"><a href="#">FORSIDE</a> | <a href="#">PRODUKTER</a> | <a href="#">KONTAKT</a> | <a href="#" class="style2">INDK&Oslash;BSKURV</a></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td height="503" valign="top" class="body" bgcolor="#F2E3C8"><p>&nbsp;</p>
    <form name="frmCart" method="get">
        <table width="100%" cellspacing="0" cellpadding="0" border="0">
            <tr class="text">
                <td height="12">&nbsp;</td>
                <td width="37%" height="12">PRODUKT</td>
                <td width="16%">VARETYPE</td>
                <td height="12">ANTAL</td>
                <td height="12">PRIS PR. STK.</td>
                <td height="12">SLET VAREN?</td>
          </tr>
            <tr class="text">
              <td height="13" colspan="6"><img src="gfx/prik.jpg" width="100%" height="1"></td>
          </tr>
            <?php
           
            while($row = mysql_fetch_array($result))
            {
                // Increment the total cost of all items
                $totalCost += ($row["qty"] * $row["itemPrice"]);
                ?>
                    <tr class="text">
                        <td width="2%" height="25">&nbsp;</td>
                        <td class="text"><?php echo $row["itemName"]; ?></td>
                        <td class="text"><?php echo $row["itemType"]; ?></td>
                        <td width="14%" height="25" class="text">
                           
                            <select name="<?php echo $row["itemId"]; ?>" onChange="UpdateQty(this)">
                              <?php
                               
                                    //for($i = 1; $i <= 20; $i++)
                                    for($i = 1; $i <= $row["itemQty"]; $i++)
                                    {
                                        echo "<option ";
                                        if($row["qty"] == $i)
                                        {
                                            echo " SELECTED ";
                                        }
                                        echo ">" . $i . "</option>";
                                    }
                                ?>
                            </select>
                        </td>
                        <td width="19%" height="25">
                              KR.<?php echo " ".number_format($row["itemPrice"], 2, ".", ","); ?>
                        </td>
                        <td width="12%" height="25">
                              <a href="cart.php?action=remove_item&id=<?php echo $row["itemId"]; ?>" class="style2">SLET VAREN</a>
                        </td>
                    </tr>
                <?php
            }
           
            // Display the total
            ?>
                    <tr class="text">
                        <td colspan="6"><img src="gfx/prik.jpg" width="100%" height="1"> </td>
                    </tr>
                    <tr class="text">
                        <td>&nbsp;</td>
                        <td colspan="2">&nbsp;</td>
                        <td align="right">TOTAL: </td>
                        <td colspan="2"> KR.<b><?php echo " ".number_format($totalCost, 2, ".", ","); ?></b></td>
                    </tr>
                    <tr class="text">
                      <td>&nbsp;</td>
                      <td colspan="2">&nbsp;</td>
                      <td align="right">&nbsp;</td>
                      <td colspan="2">&nbsp;</td>
          </tr>
                    <tr class="text">
                      <td>&nbsp;</td>
                      <td colspan="2"><a href="products.php?mainId=101" class="style2">&lt;&lt; Keep Shopping</a></td>
                      <td align="right">&nbsp;</td>
                      <td colspan="2">Send bestilling &gt;&gt; </td>
          </tr>
        </table>
      </form>
    </p></td>
  </tr>
</table>
</body>
</html>
            <?php
    }

?>
Avatar billede snigeren Nybegynder
28. september 2005 - 01:29 #7
jackass- hvordan ser det ud? Er det håbløst svært det jeg har brug for? Du snakkede om at du ville lave et eksempel =)
Avatar billede snigeren Nybegynder
28. september 2005 - 14:54 #8
i første omgang kunne jeg bare godt tænke på et eksempel på hvordan man sender indholdet fra indkøbskurven (som jo kommer fra databasen) viddere med en mail... Så må jeg senere se på hvordan man tømmer kurven.
Avatar billede snigeren Nybegynder
30. september 2005 - 01:02 #9
oh well jeg har fået hjælp andet steds,.. lukker spg.
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

IT-JOB

Fælles AI

AI Lead

Forsvarets Efterretningstjeneste

Network engineer - Routing & Switching

Kræftens Bekæmpelse

IT-driftsleder

Forsvarsministeriets Materiel- og Indkøbsstyrelse

SAP-medarbejder til Roller & Autorisationer i Forsvarets Cyberdivision