| Autor | Zpráva | ||
|---|---|---|---|
| tachov Profil |
Prosím o pomoc...
jsem začínající programátor ( HTML /PHP /CSS ) a momentálně dělám eshop .... již je kompletní včetně možností přidat inzerát ale nedokážu do končit objednávky ..... potřeboval bych php script který mi vytvoří primitivní fakturu s výpisem obsahu košíku a odešle se na mail... výpis košíku je udělaný následovně : if(isset($_SESSION["products"]))
{
$total = 0;
echo '<ol>';
foreach ($_SESSION["products"] as $cart_itm)
{
echo '<li class="cart-itm">';
echo '<span class="remove-itm"><a href="cart_update.php?removep='.$cart_itm["code"].'&return_url='.$current_url.'">×</a></span>';
echo '<h3>'.$cart_itm["name"].'</h3>';
echo '<div class="p-code">Kód produktu : '.$cart_itm["code"].'</div>';
echo '<div class="p-qty">ks : '.$cart_itm["qty"].'</div>';
echo '<div class="p-price">Cena :'.$currency.$cart_itm["price"].'</div>';
echo '</li>';
$subtotal = ($cart_itm["price"]*$cart_itm["qty"]);
$total = ($total + $subtotal);
}
echo '<span class="empty-cart"><p></span>';
echo '<span class="check-out-txt"><strong>Celkem :'.$total.' Kč</strong><p></span>';
}else{
echo 'Košik je prázdný';
}
?> Najde se někdo kdo by to ukázal aspoň nějakým příkladem ? |
||
| Taps Profil |
#2 · Zasláno: 17. 4. 2015, 02:41:34
ten vypis si uloz do nejake promenne a pak ji pouziji ve funkci mail
|
||
| tachov Profil |
tachov, Taps:
Jsem s php na plných začátcích ...ukážeš jak na to? mám to udělané zatím takto : $to = "mail@gmail.com" ;; $subject = "HTML email"; $nameix = $cart_itm["id"]; $namei = $cart_itm["name"]; $codei = $cart_itm["code"]; $qtyi = $cart_itm["qty"] ; $pricei = $cart_itm["price"] ; $cart_itm = " <html> <head> <title>HTML email</title> </head> <body> <table> <tr> <th >Produkt</th><td></td> <th>ID produktu</th><td></td> <th>Kusy</th><td></td> <th>Cena za kus</th><td></td> <th>Celkem</th><td></td> </tr> <tr> <td>$namei</td><td></td> <td>$codei</td><td></td> <td>$qtyi</td><td></td> <td>$pricei</td><td></td> <td>$subtotal</td><td></td> </tr> </table> </body> </html> "; // Always set content-type when sending HTML email $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; // More headers $headers .= 'From: <mail@gmail.com>' . "\r\n"; $headers .= 'Cc: mail@gmail.com' . "\r\n"; mail($to,$subject,$cart_itm,$headers); ?> odešle se to krásně ale vždy pouze poslední položka košíku. |
||
| smiesek Profil |
#4 · Zasláno: 18. 4. 2015, 04:42:58
tachov:
ráda bych se zapojila, případně se dověděla něco nového... tedy co je myšleno odesláním poslední položky košíku? Můžete dát konkrétní příklad? |
||
| tachov Profil |
smiesek:
kdež vložím do košíku více položek : http://ctrlv.cz/9gtK tak přijde mail kde se vypíše pouze 1 : http://ctrlv.cz/vCNh |
||
| juriad Profil |
tachov:
Tak zřejmě generuješ tabulku s dvěma řádky: 1. řádek je hlavička a 2. řádek je produkt (25. - 31. řádek kódu). Potřebuješ tedy tabulku složit v cyklu. Také tam máš možná problém v tom, že si přepisuješ proměnnou $cart_itm. Napřed to je pole, a později do ní přiřazuješ řetězec.
$email = "
<html>
<head>
<title>HTML email</title>
</head>
<body>
<table>
<tr>
<th >Produkt</th><td></td>
<th>ID produktu</th><td></td>
<th>Kusy</th><td></td>
<th>Cena za kus</th><td></td>
<th>Celkem</th><td></td>
</tr>";
foreach ($_SESSION["products"] as $cart_itm) {
$subtotal = $cart_itm['price'] * $cart_itm['qty'];
$email .= "<tr>
<td>$cart_itm[name]</td><td></td>
<td>$cart_itm[code]</td><td></td>
<td>$cart_itm[qty]</td><td></td>
<td>$cart_itm[price]</td><td></td>
<td>$subtotal</td><td></td>
</tr>";
}
$email .= "</table>
</body>
</html>"; A pak odešleš $email. Upraveno. |
||
| quatzael Profil |
#7 · Zasláno: 18. 4. 2015, 09:52:13
tachov:
To jsi jako naprogramoval celej eshop a zasekl jsi se na týhle banalitě? Místo for jak píše juriad spíš použij foreach. Záleží v čem to máš uložený a jak.
Jestli to taháš z databáze tak bys měl použít while..
|
||
| tachov Profil |
#8 · Zasláno: 18. 4. 2015, 10:40:10
quatzael:
produkty jsou uložený v databázi kde je pak přes ten SESSION vypisuju do košíku |
||
| juriad Profil |
#9 · Zasláno: 18. 4. 2015, 10:46:42
tachov:
Upravil jsem svůj kód; nejsem si jistý tou proměnnou $subtotal; to si raději zkontroluj. |
||
| tachov Profil |
juriad:
jj takhle jsem to taky upravil ale píše mi to chybu i když nechápu proč ... podle mě je to zprávně: Parse error: syntax error, unexpected '}' in......shop.php on line 89 ...u toho kodu od tebe je to ta závorka na řádku 25 |
||
| juriad Profil |
#11 · Zasláno: 18. 4. 2015, 10:56:23
tachov:
Zapomněl jsem středník na předchozím řádku (za koncem toho řetězce). |
||
| tachov Profil |
#12 · Zasláno: 18. 4. 2015, 10:59:34 · Upravil/a: tachov
nevím jestli to pomůže ale sesmolil přidávání do košíku takhle :
<?php
session_start();
include_once("confige.php");
if(isset($_GET["emptycart"]) && $_GET["emptycart"]==1)
{
$return_url = base64_decode($_GET["return_url"]);
session_destroy();
header('Location:'.$return_url);
}
if(isset($_POST["type"]) && $_POST["type"]=='add')
{
$product_code = filter_var($_POST["product_code"], FILTER_SANITIZE_STRING);
$product_qty = filter_var($_POST["product_qty"], FILTER_SANITIZE_NUMBER_INT);
$return_url = base64_decode($_POST["return_url"]);
$results = $mysqli->query("SELECT product_name,price FROM products WHERE product_code='$product_code' LIMIT 1");
$obj = $results->fetch_object();
if ($results) {
$new_product = array(array('name'=>$obj->product_name, 'code'=>$product_code, 'qty'=>$product_qty, 'price'=>$obj->price));
if(isset($_SESSION["products"]))
{
$found = false;
foreach ($_SESSION["products"] as $cart_itm)
{
if($cart_itm["code"] == $product_code){
$product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$product_qty, 'price'=>$cart_itm["price"]);
$found = true;
}else{
$product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$cart_itm["qty"], 'price'=>$cart_itm["price"]);
}
}
if($found == false)
{
$_SESSION["products"] = array_merge($product, $new_product);
}else{
$_SESSION["products"] = $product;
}
}else{
$_SESSION["products"] = $new_product;
}
}
header('Location:'.$return_url);
}
if(isset($_GET["removep"]) && isset($_GET["return_url"]) && isset($_SESSION["products"]))
{
$product_code = $_GET["removep"];
$return_url = base64_decode($_GET["return_url"]);
foreach ($_SESSION["products"] as $cart_itm)
{
if($cart_itm["code"]!=$product_code){
$product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$cart_itm["qty"], 'price'=>$cart_itm["price"]);
}
$_SESSION["products"] = $product;
}
header('Location:'.$return_url);
}
?>SUPER ... už to funguje fakt moc dík za radu... už jsem z toho měl hlavu jak pátrací balon |
||
|
Časová prodleva: 11 let
|
|||
0