Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.03.2019, 09:49
Новичок на форуме
Отправить личное сообщение для KPOTx201 Посмотреть профиль Найти все сообщения от KPOTx201
 
Регистрация: 14.03.2019
Сообщений: 2

Id элементов из table в js
Доброго времени суток. Не получатся пересчитать значения при выборе процентов из select в каждой ячейке, помогите пожалуйста!
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

<? $creditPrice = 1000; ?>

<? //$creditPrice=$arItemPrices['PRICE']?>
<? $month = array(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 18, 21, 24, 30, 36) ?>
<? $bel_bank_online = array(0, 0, 2.6, 0, 3.9, 0, 5.2, 5.9, 6.5, 0, 7.8, 9.8, 11.7, 13.6, 15.6, 19.5, 23.4) ?>
<? $idea_bank_online = array(2.82, 3.78, 4.62, 5.58, 6.42, 7.32, 8.16, 9.00, 9.84, 10.74, 11.58, 0, 0, 0, 0, 0, 0) ?>
<? $halva_mtb_bank = array(8.00, 0, 12.2, 0, 16.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) ?>


<? array_unique(sort($month)); ?>

<table align="center" width="auto" cellspacing="0" border="1" cols="5">
    <col span="5" width="20%" align="center">
    <thead>
    <tr>
        <th></th>
        <th><a href="#">Беларусбанк</a></th>
        <th><a href="#">Беларусбанк<br>(онлайн-оформление)</a></th>
        <th><a href="#">Идея Банк<br>(онлайн-оформление)</a></th>
        <th><a href="#">Карта рассрочки<br>"Халва"</a></th>
    </tr>
    </thead>


    <? for ($i = 0; $i < (count($month)); $i++): ?>

        <tbody>
        <tr>
            <td>
                <table>
                    <tr><strong>На <? echo($month[$i]); ?> месяца(-ев)</strong></tr>
                    <hr>
                    <tr>Первый взнос:</tr>
                    <br>
                    <tr>Переплата:</tr>
                    <br>
                    <tr>Цена в рассрочку:</tr>
                    <br>
                    <tr>Ежемесячный платёж:</tr>
                    <br>
                </table>
            </td>
            <td></td>
            <td>
                <? credit_calc($bel_bank_online[$i], $creditPrice, $month[$i]) ?>
            </td>
            <td>
                <? credit_calc($idea_bank_online[$i], $creditPrice, $month[$i]) ?>
            </td>
            <td>
                <? credit_calc($halva_mtb_bank[$i], $creditPrice, $month[$i]) ?>
            </td>
        </tr>
        </tbody>
    <? endfor; ?>

    <? function credit_calc($bank_procent, $price_of_prod, $credit_month)
    {if ($bank_procent > 0):; ?>
            <?$sum_with_proc = round($price_of_prod + (($price_of_prod / 100) * $bank_procent), 2) ?>
            <?$sum_in_month = round(($price_of_prod + (($price_of_prod / 100) * $bank_procent)) / $credit_month, 2) ?>


            <table>
                <tr></tr>
                <hr>
                <tr>
                    <select id="select_">
                        <option selected value="1">Без первого платежа</option>
                        <option value="10">10% - <?echo round($price_of_prod / 100 * 10, 2) ?> руб.
                        </option>
                        <option value="20">20% - <?echo round($price_of_prod / 100 * 20, 2) ?> руб.
                        </option>
                        <option value="30">30% - <?echo round($price_of_prod / 100 * 30, 2) ?> руб.
                        </option>
                        <option value="40">40% - <?echo round($price_of_prod / 100 * 40, 2) ?> руб.
                        </option>
                        <option value="50">50% - <?echo round($price_of_prod / 100 * 50, 2) ?> руб.
                        </option>
                    </select>
                </tr>
                <br>
                <tr> <?echo $bank_procent;?> %
                </tr>
                <br>
                <tr><span class="q1"><?echo $sum_with_proc?></span> руб.
                </tr>
                <br>
                <tr><span class="q2"><?echo $sum_in_month;?></span> руб.
                </tr>
                <br>

            </table>
            </td>

            <script>
                var tables = document.getElementsByTagName('select');
                for (var y = 0; y < tables.length; y++) {
                    tables[y].id = "select_" + y;
                };



                select_ /* Сюда нужно подставить счетчик var y*/.onchange = function () { 
                    var $sum = '<?echo $sum_with_proc?>';
                    var $month = '<?echo $credit_month;?>';
                    var $price = '<?echo $price_of_prod?>';
                    var $procent = '<?echo $bank_procent?>';


                    $userSelect = (this.value);

                    function pay_count() {
                        var all_sum = document.getElementsByClassName('q1');
                        all_sum[/* Сюда нужно подставить счетчик var y*/].innerHTML = ($price - ($price / 100 * $userSelect) + (($price - ($price / 100 * $userSelect)) / 100 * $procent)).toFixed(2);
                        var all_sum2 = document.getElementsByClassName('q2');
                        all_sum2[/* Сюда нужно подставить счетчик*/].innerHTML = ((($price - ($price / 100 * $userSelect) + (($price - ($price / 100 * $userSelect)) / 100 * $procent)) / $month)).toFixed(2);
                    }

                    switch ($userSelect) {
                        case "1":
                            var all_sum = document.getElementsByClassName('q1');
                            all_sum[/* Сюда нужно подставить счетчик var y*/].innerHTML = $sum;
                            var all_sum2 = document.getElementsByClassName('q2');
                            all_sum2[/* Сюда нужно подставить счетчик var y*/].innerHTML = ($sum / $month).toFixed(2);
                            break;
                        case "10":
                            pay_count();
                            break;
                        case "20":
                            pay_count();
                            break;
                        case "30":
                            pay_count();
                            break;
                        case "40":
                            pay_count();
                            break;
                        case "50":
                            pay_count();
                            break;
                        default:
                            alert("Что-то другое");
                            break;
                    }
                }
            </script>
        <?endif;
    }
    ; ?>

</table>


</body>
</html>

Последний раз редактировалось KPOTx201, 14.03.2019 в 09:52.
Ответить с цитированием
  #2 (permalink)  
Старый 14.03.2019, 10:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

KPOTx201, это JS форум, вместо РНР кода, который никто запускать не будет, нужно выставлять результирующий html код.
Ответить с цитированием
  #3 (permalink)  
Старый 14.03.2019, 11:38
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

laimas,
Да тут проблема как раз в PHP
В цикле запускается функция credit_calc, в которой создаются таблицы с селектами и неправильный скрипт.
Ответить с цитированием
  #4 (permalink)  
Старый 14.03.2019, 11:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Dilettante_Pro
Да тут проблема как раз в PHP
Вот результат работы РНР и даст ему понимание начало проблем.
Ответить с цитированием
  #5 (permalink)  
Старый 14.03.2019, 22:08
Новичок на форуме
Отправить личное сообщение для KPOTx201 Посмотреть профиль Найти все сообщения от KPOTx201
 
Регистрация: 14.03.2019
Сообщений: 2

Спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вакансия JavaScript разработчик / JS / Frontend developer (Санкт-Петербург) Сергей Грачёв Работа 0 21.09.2015 12:31
Пример тестовых заданий на js junior elshaarawy Учебные материалы 3 26.03.2015 15:17
Определение столкновения элементов на js Антон Крамолов Общие вопросы Javascript 10 03.02.2013 21:04
Скрытие элементов на JS alex_89 Элементы интерфейса 5 12.05.2011 09:29