Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Калькулятор расчета цены на сайт, Не могу разобраться в калькуляторе 
:(
    Опции темы
leema88t
Дата 20.8.2015, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 20.8.2015

Репутация: нет
Всего: нет



Здравствуйте! Кто может помочь, я только учусь. 
Возникла задача написать простенький калькулятор для сайта продающего печать на фотообоях. Чтоб клиент вводил высоту и ширину стены для фотообоев в квадратных метра, выбирал материал и итог - выводилась цена, но уже в погонных метрах, т.к. у каждого материала разные погонные метры. Я нашел подходящий скрип, подпилил под нужды, но не могу сделать, чтоб квадратные метры переводились в погонные для каждого материала, когда пользователь кликал на нужный ему материал. Вот код, может кто подскажет как это сделать?
01
<section class="section">
02
        <div class="container">
03
            <p class="h1 text-center">Калькулятор расчета стоимости услуг</p>
04
            <div class="small-line"></div>
05
            <div class="row price">
06
                <div class="col-md-4 col-md-offset-4">
07
                    <div class="list-group calculator">
08
                        <div class="list-group-item name-price"><h3>Стоимость печати</h3></div>
09
                        <div class="list-group-item box-price">
10
                            <div class="box-filter" data-price="1000">
11
                                <div class="form-group">
12
                                    <label>Площадь фотообоев</label>
13
                                    <div class="row">
14
                                        <div class="col-md-4" style="padding-top: 14px;">В метрах:</div>
15
                                        <div class="col-md-3"><input type="text" name="roof" class="form-control" id="roof" value="" placeholder="0">   ш</div>
16
                                        <div class="col-md-3"><input type="text" name="roof1" class="form-control" id="roof1" value="" placeholder="0">  в</div>
17
                                    </div>
18
                                </div>
19
                                <div class="form-group">
20
                                    <label>Материал</label>
21
                                    <ul class="parametrs" id="pol">
22
                                        <li class="label label-default" data-param="1">Бумажные фотообои с ПВХ покрытием (текстура "под иней")</li>
23
                                        <li class="label label-default" data-param="1.1">Бумажные фотообои с ПВХ покрытием (текстура "под древний папирус")</li>
24
                                        <li class="label label-default" data-param="1.2">Бумажные фотообои с ПВХ покрытием (текстура "под текстиль")</li>
25
                                        <li class="label label-default" data-param="1.4">Бумажные фотообои с ПВХ покрытием (текстура "живопись маслом")</li>
26
                                        <li class="label label-default" data-param="1">Бумажные фотообои с ПВХ покрытием (текстура "песок")</li>
27
                                        <li class="label label-default" data-param="1">Бумажные фотообои с ПВХ покрытием (текстура "лен")</li>
28
                                        <li class="label label-default" data-param="1">Бумажные фотообои с ПВХ покрытием (текстура "влажная штукатурка")</li>
29
                                        <li class="label label-default" data-param="1">Бумажные фотообои с ПВХ покрытием (текстура "штукатурка")</li>
30
                                        <li class="label label-default" data-param="1">Бумажные фотообои с ПВХ покрытием (текстура "мелкий песок")</li>
31
                                        <li class="label label-default" data-param="1">Бумажные фотообои с ПВХ покрытием (текстура "гладкая")</li>
32
                                    </ul>
33
                                     <ul class="parametrs" id="fliz">
34
                                        <li class="label label-default" data-param="1">Флизелиновые фотообои (текстура "венецианская штукатурка")</li>
35
                                        <li class="label label-default" data-param="0.95">Флизелиновые фотообои (текстура "штукатурка")</li>
36
                                        <li class="label label-default" data-param="1.15">Флизелиновые фотообои (текстура "штукатурка")</li>
37
                                        <li class="label label-default" data-param="1.2">Штукатурка с покраской</li>
38
                                    </ul>
39
                                </div>
40
                                
41
                                
42
                            </div><!-- /.box-filter -->
43
                        </div>
44
                        <div class="list-group-item footer-price">
45
                            <button type="button" class="btn-outlined btn-lg btn-default price-button">Рассчитать стоимость</button>
46
                        </div>
47
                    </div>
48
                </div>
49
            </div>
50
        </div>
51
    </section>

01
$(document).ready(function () {
02
     
03
     
04
    $('.price-button').click(function() {
05
        var boxPrice = $(this).closest('.col-md-4');
06
 
07
        function hideButton () {
08
            $(boxPrice).find('.price-button').hide();
09
            $(boxPrice).find('.footer-price').append('<h4>Итог: <span class="cur"></span> <span class="rub">р. </span></h4>');
10
 
11
        };
12
         
13
        $(boxPrice).find('.box-price').animate({height: '550px'}, {'duration': 500}, {'easing': 'linear'}, hideButton());
14
 
15
    });
16
 
17
     
18
    $('ul.parametrs li').click(function() {
19
        var listParam = $(this).closest('ul.parametrs');
20
        $(listParam).find('li.check-param').removeClass('check-param');
21
        var elemParam = $(this);
22
        $(elemParam).addClass('check-param');
23
 
24
        var elemAttr = $(elemParam).attr('data-param');
25
    });
26
 
27
     
28
    function valParam () {
29
        var Price = $('.box-filter').attr('data-price');
30
        var roofValue = $('#roof').val();
31
        var roofValue1 = $('#roof1').val();
32
        var roofValue2 = roofValue * roofValue1;
33
         
34
        var paramValuePol = $('#pol').find('li.check-param').attr('data-param');
35
        var paramValueSteny = $('#steny').find('li.check-param').attr('data-param');/
36
         
37
        if ($.isNumeric(roofValue2)) {
38
            if (!$.isNumeric(roofValue2)) roofValue2 = 1;
39
            if (!$.isNumeric(paramValuePol)) paramValuePol = 1;
40
            if (!$.isNumeric(paramValueSteny)) paramValueSteny = 0;
41
             
42
            var total = Price * roofValue2 * paramValuePol + paramValueSteny;//формула расчета общей стоимости
43
            var newTotal = Math.round(total);//округление
44
            $('.cur').html(newTotal);
45
            $('.rub').show();
46
        };
47
         
48
    };
49
     
50
    $('.calculator').on('click keyup', valParam);
51
 
52
})

Например у флизилиновых обоев погонный метр 0,75, а у ПВХ 1,3
Вот примерная формула = Ширина/ширина материала*высота(высота в метрах квадратных)*цена. 
PM MAIL   Вверх
Urfin
Дата 21.8.2015, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 27.10.2006
Где: хохляндия

Репутация: нет
Всего: 1



погонный метр - это 1 м в длину. Что вы грабли себе придумываете?

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL WWW ICQ   Вверх
leema88t
Дата 21.8.2015, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 20.8.2015

Репутация: нет
Всего: нет



Погонный метр в материалах для фотообоев это например ширина 1.3 длина 1м. (ширина*длину)
PM MAIL   Вверх
ksnk
Дата 23.8.2015, 10:55 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



leema88t, Есть сайт jsfiddle.net. На нем можно проверить код, совместно html, css и javascript, как оно работает. Если что-то не удалось - можно "сохранить" результат и бросить сюда ссылку - `Вот тут не работает...`.  

На этом сайте, при оформлении сообщения, есть возможность оформить текст как код.

Переоформи свое исходное сообщение, иначе разумного ответа, вероятно, дождаться не получится...




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Shark
Дата 24.8.2015, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: нет
Всего: 4



Мне делать было нечего и я сделал оформление за него:
HTML
Код

<section class="section">
        <div class="container">
            <p class="h1 text-center">Калькулятор расчета стоимости услуг</p>
            <div class="small-line"></div>
            <div class="row price">
                <div class="col-md-4 col-md-offset-4">
                    <div class="list-group calculator">
                        <div class="list-group-item name-price"><h3>Стоимость печати</h3></div>
                        <div class="list-group-item box-price">
                            <div class="box-filter" data-price="1000">
                                <div class="form-group">
                                    <label>Площадь фотообоев</label>
                                    <div class="row">
                                        <div class="col-md-4" style="padding-top: 14px;">В метрах:</div>
                                        <div class="col-md-3"><input type="text" name="roof" class="form-control" id="roof" value="" placeholder="0">   ш</div>
                                        <div class="col-md-3"><input type="text" name="roof1" class="form-control" id="roof1" value="" placeholder="0">  в</div>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label>Материал</label>
                                    <ul class="parametrs" id="pol">
                                        <li class="label label-default" data-param="1">Бумажные фотообои с ПВХ покрытием (текстура "под иней")</li>
                                        <li class="label label-default" data-param="1.1">Бумажные фотообои с ПВХ покрытием (текстура "под древний папирус")</li>
                                        <li class="label label-default" data-param="1.2">Бумажные фотообои с ПВХ покрытием (текстура "под текстиль")</li>
                                        <li class="label label-default" data-param="1.4">Бумажные фотообои с ПВХ покрытием (текстура "живопись маслом")</li>
                                        <li class="label label-default" data-param="1">Бумажные фотообои с ПВХ покрытием (текстура "песок")</li>
                                        <li class="label label-default" data-param="1">Бумажные фотообои с ПВХ покрытием (текстура "лен")</li>

                                        <li class="label label-default" data-param="1">Бумажные фотообои с ПВХ покрытием (текстура "влажная штукатурка")</li>
                                        <li class="label label-default" data-param="1">Бумажные фотообои с ПВХ покрытием (текстура "штукатурка")</li>
                                        <li class="label label-default" data-param="1">Бумажные фотообои с ПВХ покрытием (текстура "мелкий песок")</li>
                                        <li class="label label-default" data-param="1">Бумажные фотообои с ПВХ покрытием (текстура "гладкая")</li>
                                    </ul>
                                     <ul class="parametrs" id="fliz">
                                        <li class="label label-default" data-param="1">Флизелиновые фотообои (текстура "венецианская штукатурка")</li>
                                        <li class="label label-default" data-param="0.95">Флизелиновые фотообои (текстура "штукатурка")</li>
                                        <li class="label label-default" data-param="1.15">Флизелиновые фотообои (текстура "штукатурка")</li>
                                        <li class="label label-default" data-param="1.2">Штукатурка с покраской</li>
                                    </ul>
                                </div>
                            </div><!-- /.box-filter -->
                        </div>
                        <div class="list-group-item footer-price">
                            <button type="button" class="btn-outlined btn-lg btn-default price-button">Рассчитать стоимость</button>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>


JS (Jquery)
Код

$(document).ready(function () {
    $('.price-button').click(function() {
        var boxPrice = $(this).closest('.col-md-4');
        function hideButton () {
            $(boxPrice).find('.price-button').hide();
            $(boxPrice).find('.footer-price').append('<h4>Итог: <span class="cur"></span> <span class="rub">р. </span></h4>');
        };
        $(boxPrice).find('.box-price').animate({height: '550px'}, {'duration': 500}, {'easing': 'linear'}, hideButton());
    });
    $('ul.parametrs li').click(function() {
        var listParam = $(this).closest('ul.parametrs');
        $(listParam).find('li.check-param').removeClass('check-param');
        var elemParam = $(this);
        $(elemParam).addClass('check-param');
        var elemAttr = $(elemParam).attr('data-param');
    });
    function valParam () {
        var Price = $('.box-filter').attr('data-price');
        var roofValue = $('#roof').val();
        var roofValue1 = $('#roof1').val();
        var roofValue2 = roofValue * roofValue1;
        var paramValuePol = $('#pol').find('li.check-param').attr('data-param');
        var paramValueSteny = $('#steny').find('li.check-param').attr('data-param');/
        if ($.isNumeric(roofValue2)) {
            if (!$.isNumeric(roofValue2)) roofValue2 = 1;
            if (!$.isNumeric(paramValuePol)) paramValuePol = 1;
            if (!$.isNumeric(paramValueSteny)) paramValueSteny = 0;
            var total = Price * roofValue2 * paramValuePol + paramValueSteny;//формула расчета общей стоимости
            var newTotal = Math.round(total);//округление
            $('.cur').html(newTotal);
            $('.rub').show();
        };
    };
    $('.calculator').on('click keyup', valParam);
})

но вот Вопрос: Какой библиотекой jQuery Вы пользуетесь?
То, что Вы скинули, не рабочий код, т.к. не указана, как минимум, библиотека?!

UPD: Код отформатированный находится по >> этой << ccылки

Это сообщение отредактировал(а) Shark - 24.8.2015, 18:41


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
ksnk
Дата 25.8.2015, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



 вот?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
leema88t
Дата 25.8.2015, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 20.8.2015

Репутация: нет
Всего: нет



"https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"
Библиотека вот эта
PM MAIL   Вверх
ksnk
Дата 26.8.2015, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Цитата(ksnk @  25.8.2015,  14:46 Найти цитируемый пост)
 вот? 

А по этой ссылке, значит, все понятно?

Это сообщение отредактировал(а) ksnk - 26.8.2015, 13:48


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1005 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.