2014-11-14 4 views
0

Я новичок в php и пытаюсь включить сайт, над которым я работаю, чтобы правильно рассчитать цену двух факторов на странице бронирования для ресторана (размер партии & Выбор VIP-зоны) , В настоящее время я выполнил вычисления javascript, чтобы на странице резервирования общая цена отображалась автоматически после того, как пользователь делает свой выбор, однако я желаю, чтобы страница подтверждения php, отображаемая после отправки формы бронирования, выполняла вычисления на сервер.Выполнение серверной части, простые вычисления

Вот HTML-код в вопросе (reservations.html):

<strong>Select Party Size:</strong> 
<br> 
<select name="party" id="party" onblur="validateSelect(name)"> 
<option value="">Please Select</option> 
<option value="5 (+£5)">1 Person (£5)</option> 
<option value="10 (+£10)">2 People (£10)</option> 
<option value="15 (+£15)">3 People (£15)</option> 
<option value="20 (+£20)">4 People (£20)</option> 
<option value="25 (+£25)">5 People (£25)</option> 
<option value="30 (+£30)">6 People (£30)</option> 
<option value="35 (+£35)">7 People (£35)</option> 
<option value="40 (+£40)">8 People (£40)</option> 
<option value="45 (+£45)">9 People (£45)</option> 
<option value="50 (+£50)">10+ People (£50)</option> 
</select> 

...

<strong> VIP Area? </strong> 
<br> 
Yes (+£5) <input name="hand" id="left" value="5 (+£5)" onblur="validateRadio(id)" type="radio"> 
No <input name="hand" id="right" value="0" onblur="validateRadio(id)" checked="" type="radio"> 
<span class="validateError" id="handError" style="display: none;">Please specify whether you would like a table in the VIP area.</span> 

Вот код PHP я в настоящее время, не полностью функционирует (подтверждение. php):

<b>Total Reservation Costs: </b> 
<?php $party + $hand 

Если кто-нибудь знает, как я могу исправить свой PHP-код для выполнения расчетов стороны и выбор VIP-области и отобразить это на странице подтверждения php, я был бы благодарен за любые предложения.

Спасибо

ответ

0

Когда вы работаете с формой элементов выбора, флажок, радио одна вещь, чтобы помнить, что атрибут value не виден на пользователь, поэтому вы можете установить их как хотите.

Имея это в виду, давайте посмотрим на ваши выбора опций

<option value="5 (+£5)">1 Person (£5)</option> 
<option value="10 (+£10)">2 People (£10)</option> 
<option value="15 (+£15)">3 People (£15)</option> 

Там нет необходимости добавлять (+£5) в значении, просто поставить номер, это будет делать расчеты намного проще для вас.

Это будет означать, это выглядит

<option value="5">1 Person (£5)</option> 
<option value="10">2 People (£10)</option> 
<option value="15">3 People (£15)</option> 

Мы будем делать то же самое для вашей кнопки радио:

<input name="hand" id="left" value="5 (+£5)" onblur="validateRadio(id)" type="radio"> 

превращается в

<input name="hand" id="left" value="5" onblur="validateRadio(id)" type="radio"> 

Теперь, на странице, где ваша форма отправлена, вы можете получить значения, подобные этому

$party = intval($_POST['party']); 
$hand = intval($_POST['hand']); 
$cost = $party + $hand; 

?> 
<b>Total Reservation Costs: </b> <?php echo $cost; ?> 

Я предполагаю, что вы используете method="post" в вашей HTML-формы, если вы используете method="get", то вам необходимо изменить $_POST к $_GET

Вы заметите, что я использую intval(), причина для этого чтобы преобразовать строку в целочисленное значение, это может быть излишним, но я использую его, чтобы показать, как преобразовать строку в целое, intval() работает только для целых чисел more information on intval()

0

Использование эхо для печати:

<?php 
    $party = $_POST['party']; 
    $hand = $_POST['hand']; 
    echo $party + $hand; 
+0

Каково содержание этого файла? –

+0

Необходимо закрыть php, однако теперь, когда я отправляю страницу, отображается правильно, кроме раздела общей стоимости, где отображаются две ошибки ». Примечание: Неопределенный индекс: участник в/home/users/2014/21244429/public_html/IT Assignment - 1B - 21244429/confirm.php on line 66 Примечание: Неопределенный индекс: рука/home/users/2014/21244429/public_html/IT Assignment - 1B - 21244429/confirm.php в строке 67 0 " – 05K3

+0

Вы должны быть уверены что метод формы «POST». –