поэтому я делаю эту программу на php. Это простая программа для торговых автоматов с 3 изображениями.
Логика: накапливайте цены каждого клика по изображению в переменной $ total. Затем, при нажатии показать общую стоимость, он должен отобразить общую стоимость.
Мой, однако, отображает только цену одной поп-музыки. Когда я дважды нажимаю на каждое изображение, он отображает только цену одного поп, первого.
Вот что у меня так далеко:
$total = 0;
display_form();
if(!isset($_POST['submit']))
{
display_form();
if(isset($_POST['coke'])) //test for when coke-image is clicked
{
$total += 2.00;
}
else if(isset($_POST['rootbeer'])) //test for when rootbeer-image is clicked
{
$total += 2.00;
}
else if(isset($_POST['lemonlime'])) //test for when lemon lime-image is clicked
{
$total += 1.00;
}
else if(isset($_POST['submit']))
{
trackPrice($total);
}
}
else
{
display_form();
}
function trackPrice($total)
{
echo "Your price is $total.";
}function display_form() //displays actual form
{
Какие-нибудь мысли? Я планировал поставить статические на сумму $?
Спасибо.
На основе примера кода, который вы устанавливаете $total
к нулю после каждого раза, когда форма отправлена.
Вам либо нужно установить промежуточный итог в сеансе, чтобы его можно было получать после каждого поста (лучшее решение)
или же
Вы можете добавить скрытый элемент в форму, которая содержит промежуточную сумму, а затем извлечь его с помощью $_POST["running_total"]
когда ваша форма отправлена.
Как указано выше, вы должны использовать сеансы. Вот быстрый пример.
<?php
session_start();
//Select and uncomment either one of the two.
//1. $_SESSION['total'] = $_SESSION['total'] ?? 0; // PHP 7+;
//2. $_SESSION['total'] = isset($_SESSION['total']) ? $_SESSION['total'] : 0; // PHP < 7.
if(!isset($_POST['submit'])){
if(isset($_POST['coke'])){ //test for when coke-image is clicked
$_SESSION['total'] += 2.00;
} elseif(isset($_POST['rootbeer'])){ //test for when rootbeer-image is clicked
$_SESSION['total'] += 2.00;
} elseif(isset($_POST['lemonlime'])){ //test for when lemon lime-image is clicked
$_SESSION['total'] += 1.00;
}
}
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<label>Total Price: <?php echo $_SESSION['total']; ?></label>
<input> .... </input>
<input> .... </input>
<input> .... </input>
</form>
Я также позволил себе изменить некоторую структуру кода, отображающего форму (что вы всегда хотели бы видеть правильно?)