Кредитний калькулятор для сайту на php і jquery, блог про веб-розробках

Сфера застосування кредитного калькулятора досить широка - від інтернет-магазинів до сайтів з продажу автомобілів і нерухомості. Розглянемо процес написання зручного, швидкого і масштабується калькулятора за допомогою php і jquery. Я розгляну тут тільки розрахунок аннуитетного платежу, тому що він зараз найбільш поширений в банках, однак використовуючи вихідні, не важко буде доопрацювати його, додавши інші варіанти розрахунку.







Скрипт складається з 6 файлів:

  • index.php - фронтальна частина калькулятора;
  • functions.php - функції розрахунку кредиту і формування html-коду таблиці виплат;
  • options.php - допоміжний файл з параметрами;
  • ajax.php - обробка асинхронного запиту з параметрами кредиту і повернення результатів розрахунку;
  • script.js - jquery-код для відправки ajax-запиту на сервер;
  • style.css - стилі оформлення форми і таблиці.

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

На самому початку файлу підключаємо options.php. Поки що в цьому файлі міститься масив $ month_array. де ми перераховуємо місяці року російською мовою. Дані масиву необхідні для форми, щоб користувачі могли вказувати місяць початку виплат (для зручного відображення даних в таблиці).

Далі підключаємо jquery. script.js і файл стилів style.css.

У тілі документа описуємо форму введення вихідних даних - текстові поля для введення суми, терміну кредиту, а також процентної ставки.

Потім йде два випадають списку, де можна вибрати місяць і рік початку виплат.

В кінці файлу описуємо елементи з ідентифікаторами payment. overpay і schedule - вони будуть заповнені результатами, який поверне ajax-запит.

functions.php

У цьому файлі містяться дві функції, які відповідають за розрахунок результатів кредиту (credit) і формування таблиці виплат (render_table). Також в самому верху ми викликаємо файл options.php

Параметр функціонально $ array - це масив який містить в собі кількість елементів, рівних кількості місяців, зазначених в поле термін кредиту. Тобто якщо кредит береться на три роки, масив буде містити 36 елементів. Кожен з цих елементів, в свою чергу, являє подмассів з наступними ключами:







Алгоритм функції простий: оголошуємо змінну $ return. яку заповнюємо html-кодом таблиці, яка містить дані виплат для кожного місяця. Спершу формуємо шапку таблиці, а потім за допомогою foreach заповнюємо tbody.

Сам масив, який передається функції render_table ми отримаємо в функції credit.

Функція credit ($ term, $ rate, $ amount, $ month, $ year, $ round = 2)

  • $ Term - термін кредиту в місяцях
  • $ Rate - процентна ставка
  • $ Amount - сума кредиту
  • $ Month - місяць початку виплат
  • $ Year - рік початку виплат
  • $ Round - кількість цифр після коми для обчислюваних сум

Оголошуємо глобальну змінну $ month_array з файлу options.php

Оголошуємо масив, який потім поверне функція, в нього ми будемо розміщувати всі дані розрахунку.

Проводимо невелику затвердження даних. Термін кредиту - ціле число, сума кредиту і процентна ставка може мати дробову частину. Крім того, в цих значення ми замінюємо кому на крапку (якщо є), тому що користувач може в поле вводу ввести кому замість точки - тоді вона округлятиметься в меншу сторону і ми отримаємо невірні результати.

Розраховуємо місячну процентну ставку по кредиту (річна ставка, поділена на 12):

Обчислюємо коефіцієнт ануїтету:

Дізнаємося розмір щомісячних виплат та округляємо його до заданої точності:

У змінну $ dept (залишок заборгованості за кредитом) заносимо суму всього кредиту.

Це цифра на момент оформлення кредиту - далі ми будемо віднімати з неї щомісячні суми, спрямовані на погашення заборгованості.

Код вище якраз і формує ті самі подмассіви, які потім будуть використовуватися для створення таблиці виплат функцією render_table. Цикл for повторюємо відповідно до кількості місяців кредиту.

Всередині циклу обчислюємо суму платежу за відсотками і на погашення основної заборгованості:

В кінці кожного проходу циклу зменшуємо суму основної заборгованості на суму:

Всі розрахунки готові, залишилося тільки повернути результат

В результаті масив $ result містить суму переплати, суму щомісячного платежу і вже готовий html-код, оброблений попередньо функцією render_table.

Цей файл отримує POST-дані, отримані з форми введення вихідних даних і повертає результат назад в index.php

Підключаємо файл з функціями розрахунку:

Забираємо дані з масиву $ _POST

Викликаємо функцію credit з файлу functions.php

Відправляємо результат розрахунку в форматі json:

Тут все досить просто - ми використовуємо єдиний обробник, що перехоплює відправку форму із заповненими вихідними даними.

Коли це трапляється, збираємо необхідні значення з форми і асинхронним запитом відправляємо їх в файл ajax.php. який, в свою чергу, повертає json-масив. Його ми розпаковуємо в об'єкт за допомогою JSON.parse і заповнюємо заготовлені елементи файлу index.php результатами розрахунку.

Це лише базовий варіант калькулятора, який тепер можна масштабувати, доповнюючи необхідні елементи, наприклад, додаткову візуалізацію, змінні або інші формули розрахунку кредиту, валідацію.







Схожі статті