Я нахожусь в процессе разработки проверенной формы php для веб-сайта ресторана, которая направляет пользователя на страницу с благодарностью, отображая детали его бронирования после того, как они нажали кнопку подтверждения. В настоящее время у меня есть 2 переменные, одна с именем ‘party’, другая с именем ‘vip’. Обе эти переменные отображают строковое значение при отражении. Однако я хочу присвоить им значение int, а затем сложить их вместе, чтобы отобразить итоговую цену для пользователя.
В настоящее время у меня есть этот код, который, кажется, не работает:
<b>Total Reservation Costs: </b> £
<?php
if ( $party == "1 Person (+£5)" )
{
$party = 5;
}
elseif if ( $party == "2 People (+£10)" )
{
$party = 10;
}
elseif if ( $party == "3 People (+£15)" )
{
$party = 15;
}
elseif if ( $party == "4 People (+£20)" )
{
$party = 20;
}
elseif if ( $party == "5 People (+£25)" )
{
$party = 25;
}
elseif if ( $party == "6 People (+£30)" )
{
$party = 30;
}
elseif if ( $party == "7 People (+£35)" )
{
$party = 35;
}
elseif if ( $party == "8 People (+£40)" )
{
$party = 40;
}
elseif if ( $party == "9 People (+£45)" )
{
$party = 45;
}
elseif if ( $party == "10+ People (+£50)" )
{
$party = 50;
}
if ( $vip == "Yes" )
{
$vip = 5;
}
elseif if ( $vip == "No" )
{
$vip = 0;
}
echo $party + $vip;
?>
Если кто-нибудь знает, как я могу заставить это работать, я был бы очень благодарен, я новичок в веб-языках, поэтому я заранее прошу прощения, если мой ответ не очень ясен. Спасибо.
Вместо использования строки, чтобы определить количество людей, почему бы просто не использовать int
Вот полная программа
<form action="" method="POST">
<select name="party">
<option value="1">1 People (+£5)</option>
<option value="2">2 People (+£10)</option>
<!-- ... -->
<option value="10">10+ People (+£50)</option>
</select>
<input type="checkbox" name="vip" />
<input type="submit" value="Confirm Reservation" />
</form>
<?php
if (isset($_POST['party']) && is_numeric($_POST['party'])) {
$party = (int)$_POST['party'];
$vip = isset($_POST['vip']) ? 5 : 0;
echo "Total is: " . (($party * 5) + $vip);
}
а также elseif if
должно быть просто else if
Это не иначе, если это
Общая стоимость бронирования: £
<?php
if ( $party == "1 Person (+£5)" ){
$party = 5;
}
elseif( $party == "2 People (+£10)" ){
$party = 10;
}
elseif( $party == "3 People (+£15)" ){
$party = 15;
}
elseif( $party == "4 People (+£20)" ){
$party = 20;
}
elseif( $party == "5 People (+£25)" ){
$party = 25;
}
elseif ( $party == "6 People (+£30)" ){
$party = 30;
}
elseif( $party == "7 People (+£35)" ){
$party = 35;
}
elseif( $party == "8 People (+£40)" ){
$party = 40;
}
elseif( $party == "9 People (+£45)" ){
$party = 45;
}
elseif( $party == "10+ People (+£50)" ){
$party = 50;
}
else{ $party = 0;
}
if ( $vip == "Yes" ){
$vip = 5;
}
elseif ( $vip == "No" ){
$vip = 0;
}
else{
$vip = 0;
}
echo $party + $vip;
?>
`
Я бы также предложил добавить еще оператор, как я добавил в своем ответе, для обработки любых других случаев, которые могут возникнуть.