Показать сообщение отдельно
  #8 (permalink)  
Старый 25.02.2017, 19:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от DeathDji
Так значит лучше вообще обойтись без php?
Это как, форма для кого тогда как не для сервера?

Сообщение от DeathDji
Может знаете где можно посмотреть хорошие уроки(подсказки), что то близкое к этому
Конкретно к вашему примеру вряд-ли, а вот о всяких калькуляторах тем в сети море. Калькулятор он и в Африке калькулятор, может только условия и логика иная может быть, а так все едино.

Сперва надо не калькуляторы читать, а с html разобраться, так как <table border=1 cellpadding=5 cellspacing=0><table>, это ошибка. Поле формы type="namber" может и появится в HTML505, но в настоящее время только type="number", у которого нет maxlength=10, зато есть min и мах.

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script> 
$(function() {
    $('#load').on('change input', function() {
        var e = $(this.elements), //коллекция полей формы
         v, f, s = 0, o = $('#info');
        e.filter('[required]').each(function() { //обход полей ввода
            f = this.name; //текущее поле, по его имени можно определять те или иные операции
            this.value = v = +$.trim(this.value) || this.min; //значение не меньше минимального
            //расчет и вывод, далее просто пример
            s += e.filter('[name="vidlesov"]:checked').data('price') * v; 
        })
        o.text(s)
    })
});
</script>

<form id="load">
                        <table>
                            <tr>
                                <td>Вид лесов</td>
                                <td id="les">
                                    <label><input type="radio" name="vidlesov" data-price="100" value="1" checked=""> ЛРСП-30</label>
                                    <label><input type="radio" name="vidlesov" data-price="200" value="2"> ЛРСП-40</label>
                                    <label><input type="radio" name="vidlesov" data-price="300" value="3"> ЛРСП-60</label>
                                    <label><input type="radio" name="vidlesov" data-price="400" value="4"> ЛРСП-100</label>
                                </td>
                            </tr>
                            <tr>
                                <td>Длина и высота объекта</td>
                                <td><input class="block" min="1" max="5" type="number" value="1" name="d" required>
                                <input type="number" min="1" max="5" name="h" value="1" required></td>
                            </tr>
                            <tr>
                                    <p class="cratno">кратно 3</p>
                                <td>Число рабочих ярусов</td>
                                <td><input  type="number" min="1" max="5" name="yarus" value="1" required></td>
                            </tr>
                            <tr>
                                <td>Комплектация связями</td>
                                <td>
                                    <label><input type="radio" name="connect" value="0" checked> шахматный порядок</label>
                                    <label><input type="radio" name="connect" value="1"> сплошная</label>
                                </td>
                            </tr>
                            <tr>
                                <td>Количество подъемов</td>
                                <td><input name="ascent" type="number" min="1" max="5" value="1" required></td>
                            </tr>
                            <tr>
                                <td>Комплектация опорами</td>
                                <td>
                                    <label><input type="radio" name="support" value="1" checked> да</label>
                                    <label><input type="radio" name="support" value="0"> нет</label>
                                </td>
                            </tr>
                            <tr>
                                <td>Комплектация кронштейнами</td>
                                <td>
                                    <label><input type="radio" name="bracket" value="1" checked> да</label>
                                    <label><input type="radio" name="bracket" value="0"> нет</label>
                                </td>
                            </tr>
                        </table>
                    <div id="info"></div>
                </form>


Здесь для примера - обрабатываются события изменения и ввода полей формы. Из коллекции полей формы берутся обязательные поля и обходятся в цикле .each(). Цены для первой группы кнопок содержатся в атрибутах ее полей - data-price. Аналогично можно хранить цены или корректирующие значения в других группах кнопок. То есть при каждом изменении формы производится расчет.

name="connect" value="0" - значение по умолчанию, удобно будет 0.
name="support" value="1" - значение 1 будет удобно для "да", и 0 для "нет".


Разберетесь с этим, значит сделаете, нет, значит нет. А что там у вас за расчеты, темный лес, и чтобы понять что к чему, нужно знать условия, именно поэтому найти в сети калькулятор именно для вас, это нонсенс. )

Последний раз редактировалось laimas, 25.02.2017 в 19:33.
Ответить с цитированием