Вычисления из формы [php] - Форум об интернет-маркетинге
Этот сайт существует на доходы от рекламы.
Пожалуйста, выключите AdBlock.
Вернуться   Форум об интернет-маркетинге > >
Ответ
 
Опции темы
Старый 13.07.2018, 02:09   #1
Аспирант
 
Аватар для KianoT
 
Регистрация: 04.04.2012
Сообщений: 216
Репутация: 3206

По умолчанию Вычисления из формы [php]

Уважаемые, подскажите пожалуйста! Не хватает знаний в php.

Есть форма (form), в которой чекбоксом выбираешь от 1 до 3 заранее известных числа (три чекбокса - три числа).

<form>
<input type="checkbox" name="quant[one]" value="73000" />
<input type="checkbox" name="quant[two]" value="83000" />
<input type="checkbox" name="quant[three]" value="93000" />

<input type="submit" />
</form>

После того, как в форме поставил галочки, всё это дело отправляется на следующую страницу, кликая в форме на кнопку submit. За передачу на следующую страницу отвечает такой код:

Цитата:
session_start();

$_SESSION['order'] = array();
if (!empty($_POST)) {
if (!empty($_POST['quant']['one'])) {
$_SESSION['order'][] = array(
'name' => 'Первое значение',
'price' => (int)$_POST['quant']['one']
);
}
if (!empty($_POST['quant']['two'])) {
$_SESSION['order'][] = array(
'name' => 'Второе значение',
'price' => (int)$_POST['quant']['two']
);
}
if (!empty($_POST['quant']['three'])) {
$_SESSION['order'][] = array(
'name' => 'Третье значение',
'price' => (int)$_POST['quant']['three']
);
}

if (!empty($_SESSION['order'])) die(header('Location: /page/order.php'));
else die(header('Location: '.$_SERVER['REQUEST_URI']));
}
Если вкратце, то на следующую страницу передаются в таблицу из двух колонок 'name' и 'price' и высчитывается итог $total:

Цитата:
<table style="width:100%" id="order-kp">
<tr>
<td><b>Название значения</b></td>
<td><b>Само число из чекбокса</b></td>
</tr>';
$c = 1;
$total = 0;
foreach ($_SESSION['order'] as $item) {
$body .=
'<tr>
<td>'.$item['name'].'</td>
<td>'.$item['price'].'</td>
</tr>';
$total += round($item['price']+$item['price']);
}
$body .=
'<tr>
<td style="border: 0;"></td>
<td>Итого: '.$total.'</td>
</tr>';

$body .= '</table>';
Как видите, стронгом выделен сам вопрос:

$total += round($item['price']+$item['price']); - в данном случае у меня числа сами себя плюсуют(скрин ниже), но как сделать так, чтобы числа складывались число+число+число= итого



Заранее благодарен за помощь!!!
KianoT вне форума   Ответить с цитированием

Реклама
Старый 13.07.2018, 02:12   #2
LEOnidUKG
『 Работаем 』
 
Аватар для LEOnidUKG
 
Регистрация: 25.11.2006
Адрес: Интернет
Сообщений: 21,146
Репутация: 1858429
Отправить сообщение для LEOnidUKG с помощью ICQ

По умолчанию Re: Вычисления из формы [php]

Что за бред?! Вы же в цикле плюсуете.

Ну сделайте понятнее:

$total = $item['price']+$total;
LEOnidUKG вне форума   Ответить с цитированием
Старый 13.07.2018, 02:34   #3
KianoT
Аспирант
 
Аватар для KianoT
 
Регистрация: 04.04.2012
Сообщений: 216
Репутация: 3206

ТопикСтартер Re: Вычисления из формы [php]

LEOnidUKG, пошёл изучать цикл в php. Ваш ответ решил задачу. Благодарю вас!!!

Заодно спрошу...
Как можно настроить число из input, чтобы на выходе в таблице(скрин выше) были пробелы, например 312 000, вместо 312000?
KianoT вне форума   Ответить с цитированием
Старый 13.07.2018, 03:03   #4
ziliboba0213
Академик
 
Аватар для ziliboba0213
 
Регистрация: 03.09.2009
Адрес: Санкт-Петербург
Сообщений: 4,749
Репутация: 819550

По умолчанию Re: Вычисления из формы [php]

Цитата:
Сообщение от KianoT Посмотреть сообщение
LEOnidUKG, пошёл изучать цикл в php. Ваш ответ решил задачу. Благодарю вас!!!

Заодно спрошу...
Как можно настроить число из input, чтобы на выходе в таблице(скрин выше) были пробелы, например 312 000, вместо 312000?
PHP код:
echo number_format(3120000''' ' ); 
ziliboba0213 вне форума   Ответить с цитированием
Старый 13.07.2018, 11:22   #5
silicoid
Академик
 
Регистрация: 13.10.2014
Сообщений: 1,230
Репутация: 131560

По умолчанию Re: Вычисления из формы [php]

просуммировать все эл-ты массива можно при помощи функции php
number array_sum ($_POST['quant'])

чтоб вывести х числел [пример: 1000+3000+5000] можно поступить так
string implode ('+',$_POST['quant'])
silicoid вне форума   Ответить с цитированием
Ответ




Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Текущее время: 07:45. Часовой пояс GMT +3.

Регистрация Справка Календарь Поддержка Все разделы прочитаны