2016-02-19 3 views
0

У меня есть html-страница, которая имеет значения, флажки и переключатели, а также ввод. Я хочу, чтобы пользователь мог получить общую стоимость цены, исходя из того, что они выбирают. обрабатывается HandleSalads.php, предполагая, что базовая цена для салата плюс повязка составляет 3,50 долларов США, и каждая выбранная фиксация будет равна 0,50 доллара США. Цена должна включать знак доллара и два десятичных знака. Как я могу это сделать?Получение значения массива в php-странице

<form action="HandleSalads.php" method="post" name="vrySimple"> 

    <label for="txtName">Name:<input type="text" id="txtName" name="txtName" /> </label> 

    <h2>Lettuce type:</h2> 
    <label for="radIceberg"><input type='radio' name="Letttype" value="Iceberg">Iceberg </label> 
    <label for="radRomaine"><input type='radio' name="Letttype" value="Romaine">Romaine </label> 
    <br> 
    <br> 
    <h2>Fixings:</h2> 
    <label for="chChicken"><input type='checkbox' name="choice[]" value="Chicken" id="chChicken">Chicken </label> 
    <label for="chTuna"><input type='checkbox' name="choice[]" value="Tuna" id="chTuna">Tuna </label> 
    <label for="chTofu"><input type='checkbox' name="choice[]" value="Tofu" id="chTofu">Tofu</label> 

    <h2>Dressings:</h2> 
    <select name="choose" > 
     <option value="">Select...</option> 
     <option name="dressigns1" value="Balsamic Vinaigrette" >Balsamic Vinaigrette</option> 
     <option name="dressigns1" value="Caesar" >Caesar</option> 
     <option name="dressigns1" value="Italian" >Italian</option> 
    </select> 

Это то, что я имею в HandleSalads.php до сих пор.

<?php 

$lettuce = 3; 
$Dressing = .50; 
$Fixing = .50; 

$baseprice = $lettuce + $Dressing; 
$total = $baseprice + $Fixing; 

foreach ($Fixing as $choice + $baseprice){ 
    echo $choice."<br />"; 

} 

//echo number_format("3",2)."<br>"; 

?> 
+0

Где вы застряли? У вас есть конкретная проблема? – SunSparc

+0

проблема в том, что я не получаю никакого значения значений при получении чисел – braum

ответ

0

Чтобы вычислить общую стоимость, используйте эту формулу:

$total = $lettuce + $Dressing*(!empty($_POST['choose'])) + $Fixing*count($_POST['choice']); 

К таким образом, дополнительная цена $Dressing начисляется только, если выбран туалетный, а общая $Fixing сумма получается многократно $Fixing сумма, на общей выбраны $_POST[choice]

PhpFiddle demo

Редактировать: обратите внимание, что count($_POST['choice']) будет выводить PHP Notice, если он не установлен. Чтобы избежать этой ошибки, просто измените код выше следующим образом:

$totFixing = (isset($_POST['choice'])) ? count($_POST['choice']) : 0; 
$total  = $lettuce + $dressing*(!empty($_POST['choose'])) + $fixing*$totFixing; 
+0

@braum Вы видели демо? Он работает, поэтому дважды проверьте свой код – fusion3k

+0

Я получаю общее количество, но независимо от того, что я ставлю, я всегда получаю 3,00 доллара, также я бы хотел эха в 'number_format' – braum

+0

@braum. Я понимаю, но если вы видите демонстрационную работу и сравниваете ваш код с демо-кодом, возможно, вы можете найти ошибку. Если вы хотите использовать 'number_format', вы можете использовать его, почему бы и нет? – fusion3k

Смежные вопросы