2015-02-26 3 views
1

Я сделал форму заказа с помощью PHP, которая делает промежуточные итоги для каждого заказанного элемента. Как я могу сделать функцию/код для отображения общей суммы для порядка в нижней части страницы. Я пытался читать на PHP.net, но не мог понять.PHP order total total

Вот пример моего кода:

$bread = $_POST["bread"]; 
 
$cheese = $_POST["cheese"]; 
 
$eggs = $_POST["eggs"]; 
 

 
$priceBread = 5; 
 
$priceCheese = 5; 
 
$priceEggs = 3.6; 
 

 
function subtotal($incomingQuantity, $incomingPrice){ 
 
    return $incomingQuantity * $incomingPrice; 
 
} 
 

 
<div id="breadSubtotal">$<?php echo subtotal($bread, $priceBread); ?> 
 
<div id="cheeseSubtotal">$<?php echo subtotal($cheese, $priceCheese); ?></div> 
 
<div id="eggsSubtotal">$<?php echo subtotal($eggs, $priceEggs); ?></div>

Я хочу, чтобы в общей сложности из подуровней всех элементов

+0

Вы имеете в виду заказ на цену сегодня для 'priceBread',' priceCheese 'и' priceEggs'? –

+0

@Andre Вы правы – Mustafa

+0

Вы хотите получить сумму суммарного итога. Являются ли они элементами меню статическими? – Ranjith

ответ

0

что-то вроде этого?

$total = 0; 

function subtotal($incomingQuantity, $incomingPrice){ 
    global $total; 
    $sub = $incomingQuantity * $incomingPrice; 
    $total += $sub; 
    return $sub; 
} 

затем в HTML

<div id="total">$<?php echo $total; ?></div> 

также, не забудьте сделать безопасным ваш входящий $ _POST вары с чем-то вроде

$bread = htmlspecialchars($_POST["bread"]); 
+0

Человек я ценю это, он действительно работал отлично! Теперь я выясню способ сделать общее количество !! – Mustafa

+0

Youre приветствуется. здесь есть несколько хороших ответов, но иногда просто простой глобальный var является ответом – DevDonkey

+0

Вы правы, это первый раз, когда я использую глобальную переменную. Я супер новичок в PHP – Mustafa

0

Я хочу, чтобы в общей сложности из подуровней все пункты

Его очень просто вычислить. Попробуйте вот так

$bread = 2; 
$cheese = 3; 
$eggs = 4; 

$priceBread = 5; 
$priceCheese = 5; 
$priceEggs = 3.6; 
$total = 0; 
function subtotal($incomingQuantity, $incomingPrice){ 
    return $incomingQuantity * $incomingPrice; 
} 

$total += subtotal($bread, $priceBread) ; 
$total += subtotal($bread, $priceBread); 
$total += subtotal($cheese, $priceCheese); 
echo "order total : " + $total; 
+0

Спасибо большое! Это так полезно – Mustafa

+0

Добро пожаловать ..... :) – Ranjith

0

Если вы не ошиблись, вы хотите рассчитать количество каждого предмета с ценой предметов. Поэтому, основываясь на этом, я бы это сделал.

public function getTotal() 
{ 
    $total = 0; 
    $subTotal = func_get_args(); 
    for($a = 0; $a < sizeof($subTotal); $a++) 
    { 
     $total += $subTotal[$a]; 
    } 

    return $total; 
} 

Test функция

getTotal(subtotal($bread, $priceBread), subtotal($cheese, $priceCheese), subtotal($eggs, $priceEggs)); 
+0

Это очень простой и понятный способ сделать это! большое спасибо – Mustafa

0

Вот как я бы сделал это, дает большую гибкость

<?php 
$bread = $_POST["bread"]; 
$cheese = $_POST["cheese"]; 
$eggs = $_POST["eggs"]; 

//prices 
$prices = array('bread'=>5,'cheese'=>5,'eggs'=>3.6); 

function calculateOrderTotals($items, $prices){ 

    //result 
    $result = array('total'=>0, 'subTotal'=>array()); 

    //total 
    $total = 0; 

    //calculate subtotal and total 
    foreach ($items as $item => $nPurchased){ 
     $subTotal = $nPurchased* $prices[$item]; 
     $result['subTotal'][$item] = $subTotal; 
     $total += $subTotal; 
    } 

    //set total 
    $result['total'] = $total; 

    //return 
    return $result; 
} 

//call function to calculate  
$totals = calculateOrderTotals(array('bread'=>$bread,'cheese'=>$cheese,'eggs'=>$eggs), $prices); 

?> 

<div id="breadSubtotal"><?php echo $totals['subTotal']['bread'];?> 
<div id="cheeseSubtotal"><?php echo $totals['subTotal']['cheese']; ?></div> 
<div id="eggsSubtotal"><?php echo $totals['subTotal']['eggs']; ?></div> 
<div id="total"><?php echo $totals['total']; ?></div> 
Смежные вопросы