Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
4 / 4 / 2
Регистрация: 01.04.2017
Сообщений: 415

Складывать значения только с Чекбоксом

27.05.2020, 18:41. Показов 1324. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята, есть страничка услуги, там есть ее цена-

HTML5
1
2
3
4
             <div class="right">
                Цена Услуги
                <span id="total_bet_amount"><b>{!! $service->price + $service->dop1_price + $service->dop2_price + $service->dop3_price !!}</b></span>
             </div>
Как видно общая сумма складывает из стобца цена + 3 допника из трех других столбцов этой же таблицы, в общем из 4 цифр она суммируется.

НО эти 3 доп. опции посетителю не всегда нужны и он хочет допустим взять 1 доп или вообще 0. и тогда должна отображаться только основная PRICE.

Около этих опций я сделал чек боксы-

HTML5
1
2
3
4
5
     <p style=""><strong>Дополнительные опции: </strong><br>
           {{$service->dop1_name}}: цена {{$service->dop1_price}}{{$gs->base_curr_symbol}}, {{$service->dop1_days}} дня (-ей) <input class="options" type="checkbox" name="" value="{{$service->id}}" onchange="set()"><br>
            {{$service->dop2_name}}: цена  {{$service->dop2_price}}{{$gs->base_curr_symbol}}, {{$service->dop2_days}} дня (-ей) <input class="options" type="checkbox" name="" value="{{$service->id}}" onchange="set()"><br>
         {{$service->dop3_name}}: цена  {{$service->dop3_price}}{{$gs->base_curr_symbol}}, {{$service->dop3_days}} дня (-ей) <input class="options" type="checkbox" name="" value="{{$service->id}}" onchange="set()">
              </p>
вот я не могу сделать так чтобы суммироваие цены шло только при выбранных чекбоксах...
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2020, 18:41
Ответы с готовыми решениями:

Как складывать все поочередно складывать значения которые возрастают
Нужно складывать по этой формулы 1/(1+k*2) Примерно так 1/(1+1^2)+1/(1+2^2)+1/(1+3^2)+1/(1+4^2)............и так до.....+1/(1+27^2) ...

Скрипт работает только с первым чекбоксом на странице
Всем привет! Есть скрипт: jQuery(document).ready(function($) { var elem = $('input'); elem.change(function() { var value =...

Как складывать только отрицательные элементы матрицы
Подскажите как складывать только отрицательные элементы uses crt; var a: array of integer; i,j,sum: integer; begin ...

14
Эксперт JS
 Аватар для Iverycool
1586 / 796 / 362
Регистрация: 01.02.2019
Сообщений: 1,047
27.05.2020, 19:03
dotez, так вам надо реализовать проверку на JS bkb на PHP?
0
4 / 4 / 2
Регистрация: 01.04.2017
Сообщений: 415
27.05.2020, 19:05  [ТС]
Цитата Сообщение от Iverycool Посмотреть сообщение
так вам надо реализовать проверку на JS bkb на PHP?
я думаю лучше на JS, чтобы сумма менялась на лету, челвоек поставил галочку сумма у него изменилась сразу без перезагрузки страницы, снял галочку сумма отнялась соответственно.
0
Эксперт JS
 Аватар для Iverycool
1586 / 796 / 362
Регистрация: 01.02.2019
Сообщений: 1,047
27.05.2020, 19:06
dotez, приложите тогда html, а не php
0
4 / 4 / 2
Регистрация: 01.04.2017
Сообщений: 415
27.05.2020, 19:09  [ТС]
Цитата Сообщение от Iverycool Посмотреть сообщение
приложите тогда html, а не php
так у меня один файл то. я просто из него взял куски которые мы рассматриваем и их код привел.

весь остальной код там не имеет уже к делу отношения.
0
Эксперт JS
 Аватар для Iverycool
1586 / 796 / 362
Регистрация: 01.02.2019
Сообщений: 1,047
27.05.2020, 19:11
Цитата Сообщение от dotez Посмотреть сообщение
{{$service->dop1_name}}: цена {{$service->dop1_price}}{{$gs->base_curr_symbol}}
Не похож на html Приложите уже сгенерированный php участок кода
0
4 / 4 / 2
Регистрация: 01.04.2017
Сообщений: 415
27.05.2020, 19:17  [ТС]
Цитата Сообщение от Iverycool Посмотреть сообщение
Не похож на html Приложите уже сгенерированный php участок кода
ну это Ларчик.

на выходе в бразуре эти же участки выглядят вот так-

HTML5
1
2
3
4
5
6
<div class="right">
                Цена Услуги
                <span id="total_bet_amount"><b>13</b></span> ₸
             </div>
             <div class="left">
                <input type="hidden" id="total_amount" name="total_amount" value="">
HTML5
1
2
3
4
5
6
  <p style=""><strong>Дополнительные опции: </strong><br>
                  топ заказ: цена 1₸, 99 дня (-ей) <input class="options" type="checkbox" name="" value="42" onchange="set()"><br>
                         топ заказ2: цена  1₸, 2 дня (-ей) <input class="options" type="checkbox" name="" value="42" onchange="set()"><br>
                         топ заказ3: цена  1₸, 11 дня (-ей) <input class="options" type="checkbox" name="" value="42" onchange="set()">
         
         </p>
0
Эксперт JS
 Аватар для Iverycool
1586 / 796 / 362
Регистрация: 01.02.2019
Сообщений: 1,047
27.05.2020, 19:32
dotez,
JavaScript
1
2
3
4
5
6
7
const sumNode = document.querySelector('#total_bet_amount > b');
document.querySelectorAll('.options').forEach(opt => {
  opt.onchange = function() {
    if (opt.checked) sumNode.innerText = +sumNode.innerText + +opt.value;
    else sumNode.innerText = +sumNode.innerText - +opt.value
  }
});
0
4 / 4 / 2
Регистрация: 01.04.2017
Сообщений: 415
27.05.2020, 19:38  [ТС]
Цитата Сообщение от Iverycool Посмотреть сообщение
const sumNode = document.querySelector('#total_bet_amoun t > b');
document.querySelectorAll('.options').fo rEach(opt => {
opt.onchange = function() {
if (opt.checked) sumNode.innerText = +sumNode.innerText + +opt.value;
else sumNode.innerText = +sumNode.innerText - +opt.value
}
});

а куда это девать то?
я думал что вот здесь все должно быть прописано-

HTML5
1
<span id="total_bet_amount"><b>{!! $service->price + $service->dop1_price + $service->dop2_price + $service->dop3_price !!}</b></span>
потому что если тут ничего не изменить то он и будет отображать всю сумму со всеми сложеиями.)
0
Эксперт JS
 Аватар для Iverycool
1586 / 796 / 362
Регистрация: 01.02.2019
Сообщений: 1,047
27.05.2020, 19:51
dotez, вы опять показываете мне php. Грубо говоря вот так должно быть6
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<div class="right">
                Цена Услуги
                <span id="total_bet_amount"><b>13</b></span> ₸
             </div>
             <div class="left">
                <input type="hidden" id="total_amount" name="total_amount" value="">
  <p style=""><strong>Дополнительные опции: </strong><br>
                  топ заказ: цена 1₸, 99 дня (-ей) <input class="options" type="checkbox" name="" value="42" onchange="set()"><br>
                         топ заказ2: цена  1₸, 2 дня (-ей) <input class="options" type="checkbox" name="" value="42" onchange="set()"><br>
                         топ заказ3: цена  1₸, 11 дня (-ей) <input class="options" type="checkbox" name="" value="42" onchange="set()">
         
         </p>
<script>
const sumNode = document.querySelector('#total_bet_amount > b');
document.querySelectorAll('.options').forEach(opt => {
  opt.onchange = function() {
    if (opt.checked) sumNode.innerText = +sumNode.innerText + +opt.value;
    else sumNode.innerText = +sumNode.innerText - +opt.value
  }
});
</script>
0
4 / 4 / 2
Регистрация: 01.04.2017
Сообщений: 415
27.05.2020, 22:07  [ТС]
Цитата Сообщение от Iverycool Посмотреть сообщение
вы опять показываете мне php. Грубо говоря вот так должно быть6
Слушай, а если сделать вот так-

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script>
       
       var price0 = "{{$service->price}}";
       var price1 = "{{$service->dop1_price}}";
       var price2 = "{{$service->dop2_price}}";
       var price3 = "{{$service->dop3_price}}";
    
const sumNode = document.querySelector('#total_bet_amount > b');
document.querySelectorAll('.options').forEach(opt => {
  opt.onchange = function() {
    if (opt.checked) sumNode.innerText = +sumNode.innerText + +opt.value;
    else sumNode.innerText = +sumNode.innerText - +opt.value
  }
});
</script>
то сразу из базы подтянуть значения всех нужных нам 4 переменных.
и теперь вот сюда подставлять на лету значения уже, можно? в зависимости от того что тыркает пользователь.

HTML5
1
2
3
4
<div class="right">
                Цена Услуги
                <span id="total_bet_amount"><b>Сумма на лету</b></span>
             </div>
0
Эксперт JS
 Аватар для Iverycool
1586 / 796 / 362
Регистрация: 01.02.2019
Сообщений: 1,047
27.05.2020, 22:12
dotez, можно конечно:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var price0 = "{{$service->price}}";
       var price1 = "{{$service->dop1_price}}";
       var price2 = "{{$service->dop2_price}}";
       var price3 = "{{$service->dop3_price}}";
    
const sumNode = document.querySelector('#total_bet_amount > b');
sumNode.innerText = price0;
document.querySelectorAll('.options').forEach((opt, i) => {
  opt.value = eval('price' + (i+1));
  opt.onchange = function() {
    if (opt.checked) sumNode.innerText = +sumNode.innerText + +opt.value;
    else sumNode.innerText = +sumNode.innerText - +opt.value
  }
});
0
4 / 4 / 2
Регистрация: 01.04.2017
Сообщений: 415
27.05.2020, 22:14  [ТС]
Цитата Сообщение от Iverycool Посмотреть сообщение
можно конечно:
а сюда то что писать?))))

PHP
1
2
3
4
<div class="right">
                Цена Услуги
                <span id="total_bet_amount"><b>тут должная быть переменная price0 по умолчанию и плюс те что тыркнет пользователь</b></span>
             </div>
0
Эксперт JS
 Аватар для Iverycool
1586 / 796 / 362
Регистрация: 01.02.2019
Сообщений: 1,047
27.05.2020, 22:19
Лучший ответ Сообщение было отмечено dotez как решение

Решение

dotez, в моём коде уже есть вставка price0 и добавка чекбоксов
1
4 / 4 / 2
Регистрация: 01.04.2017
Сообщений: 415
27.05.2020, 22:26  [ТС]
Цитата Сообщение от Iverycool Посмотреть сообщение
в моём коде уже есть вставка price0 и добавка чекбоксов
это я понял но это скрипт сам. я его вконце страницы вставлю где он будет обрабатываться, а ВЫХОДНЫЕ его данные то как прописать вот сюда-
HTML5
1
2
3
4
5
6
7
<div class="right">
                Цена Услуги
                <span id="total_bet_amount">
<b>
Вот тут должен быть какойто код или переменная))))) так как именно это видит пользователь на странице
</b></span>
             </div>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.05.2020, 22:26
Помогаю со студенческими работами здесь

Как складывать значения столбцов?
Программа не складывает значения, а лишь пишет эти числа вместе. Например 2+3+4=234.Что делать, помогите, пожалуйста? procedure...

Как складывать числа, если даны только указатели на них?
В общем, стоят задача, в которой требуется передать в функцию указатели на числа типа float и произвести с ними некоторые действия....

Можно ли складывать элементы массива, не присваивая значения переменным
List&lt;object&gt; lst = new List&lt;object&gt;(); lst.Add(10); lst.Add(20); lst.ToArray(); int...

Как сделать generic класс, который будет принимать в качестве параметра только числа и уметь их складывать и т.д?
Я хочу написать класс дерева отрезков в который можно передавать любые числа, однако даже T extends Number мне не помогает, потому что для...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru