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.'">&times;</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
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
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
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
quatzael:
produkty jsou uložený v databázi
kde je pak přes ten SESSION vypisuju do košíku
juriad
Profil
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
tachov:
Zapomněl jsem středník na předchozím řádku (za koncem toho řetězce).
tachov
Profil
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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0