Калькулятор на php и html

PHP начинающим на примере калькулятора

Доброго всем времени суток! В этой статье для себя ничего не сможет найти полезного человек, который хоть когда-нибудь пробовал кодить на php, однако думаю новичкам в данной области может быть полезна для понятия основ.

Итак, наша задача — написать простейший калькулятор, который мог бы не только производить простейшие вычисления, но работал бы со всеми основными системами счисления, что нам самим может пригодиться в будущем. Код в данном случае получается небольшой, однако, в целях безопасности переменные лучше фильтровать. В своём примере я решил прибегнуть к регулярным выражениям, дабы была возможность для увеличения функциональности без внесения существенных изменений в код. Также следует отметить, что в случае с калькулятором обработчик мной было решено оставить в одном файле с разметкой, хотя в остальных случаях зачастую лучше отделять код от html-разметки. Собственно, нам понадобятся следующие html-формы:

— формы для ввода двух чисел с соответствующими атрибутами name=’a’ и name=’b’
— форма для выбора действия. Сразу стоит подумать, а нужно ли нам записывать её значение в переменную и фильтровать. Для себя я решил, что это будет лишним, однако если делать нечего, то можно и сделать.
— формы для задания кодировки. Вообще желательно проверить, соответствует ли число заданной кодировке, однако и это действие я решил опустить. Если пользователь знает, что это такое, вряд ли он получит сообщение об ошибке.
Однако если это Вася из 5а, и он хочет немножко поиграться со скриптом, то в любом случае ничего интересного он не увидит.

А так собственно будет выглядеть наш код:

Посмотреть всё в связке можно в архиве со скриптом, скачать который можно здесь.

Источник

Пишем калькулятор на PHP

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Всем привет! Мы с вами изучили 2 типа запросов: GET и POST. Они позволяют нам отправлять данные на сервер, благодаря чему мы можем с ним «общаться». Мы рассмотрели несколько простейших примеров. В этом уроке для закрепления материала мы с вами напишем свой калькулятор!

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

Итак, вот так будет выглядеть форма для ввода исходных данных:
Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

А вот так будет выглядеть страница с результатом:
Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Давайте теперь спроектируем, где что будет лежать. Я предлагаю сделать такую архитектуру:

Шаблоны калькулятора

Итак, приступим. Давайте начнём с формы. Она будет содержать в себе:

Я приведу здесь пример формы, в которой будет только две возможные операции: сложение и вычитание.

Здесь вам всё должно быть знакомо. Если нет — повторите уроки с формами в курсе HTML.

Мы видим, что данная форма отправляет GET-запрос на адрес /result.php. Как мы уже решили, там будет находиться шаблон для вывода результата вычислений.

Вот пример кода, который получился у меня:

Бизнес-логика калькулятора

Теперь самое интересное — написать бизнес-логику. Создаём файл calc.php и начинаем думать.

Сейчас, если перейти по адресу http://myproject.loc/result.php, мы увидим соответствующий результат:
Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Далее, нам стоит проверить, что из формы переданы x1, x2 и operation.

Можно теперь вернуться на форму с исходными данными и заполнить её какими-нибудь данными:
Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Если теперь нажать на кнопку отправки формы, мы увидим, что никаких ошибок в форме результата теперь не возникло:
Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Попробуем теперь убрать один из аргументов в форме:
Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Если мы отправим запрос сейчас, то увидим соответствующую ошибку:
Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Ну что, теперь мы знаем, что данные у нас проверяются, можно с ними и поработать.

Давайте теперь составим выражение, которое мы будем вычислять. Его мы просто будем выводить для наглядности.

Теперь вернёмся на форму и снова введём корректные аргументы. После этого отправим её и увидим, что на странице с результатом появилось выражение, результат которого мы будем считать.
Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Дело осталось за малым — нужно только посчитать результат.

Для того, чтобы определить, какое действие нужно совершить с аргументами, воспользуемся конструкцией switch-case.

В результате получаем такое содержимое calc.php.

Давайте теперь снова отправим форму и посмотрим на результат.
Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Получили простейший калькулятор, который умеет складывать и вычитать. Разумеется, это лишь простейший прототип. Довести его до ума вы сможете сами, а в домашнем задании вас ждут наводящие вопросы, которые помогут найти ошибки, содержащиеся в приведенном коде.

Источник

Калькулятор для сайта на WordPress: основы создания, установка и готовые решения

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Привет дорогие читатели seoslim.ru! Все мы знаем, что для продвижения сайтов в ТОП недостаточно уже одного уникального и полезного контента.

Содержание:

Поисковые системы используют для ранжирования ресурсов не одну сотню факторов, поэтому успешные seo-компании и опытные вебмастера обращают внимание на добавочную стоимость сайта

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

У меня есть один сайт, где присутствуют сотни уникальных статей, контент публикуется каждый день. У площадки покупной дизайн, настроена разметка, адаптация под моб. устройства и так далее. Одним словом сделан по всем правилам SEO.

Однако пару дней назад в панели Яндекс Вебмастер появилось сообщение, что сайт содержит бесполезный контент. ((

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Поэтому надо понимать, что рерайт статьи, который в сервисах проверки уникальности показывает 100% еще не означает ее полезность для посетителей.

Алгоритмы поисковых систем давно уже научились распознавать подобные тексты и если вы хотите пробиться в ТОП исключительно на них, то успеха точно не стоит ждать.

Статья в первую очередь должна решать проблему пользователя и быть уникальной в своем роде.

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

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

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

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

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

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

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

Пример простого калькулятора для сайта на PHP + JS

Итак, если вы решите сами создать калькулятор, то знайте, что овладеть хотя бы базовыми знаниями языков программирования JavaScript и PHP все же придется.

Лично я с JavaScript мало знаком поэтому покажу позаимствованную структуру построения самого простого калькулятора, который может складывать два числа и выводить конечный результат по запросу.

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Форма счетчика будет создана с помощью тегов

Для реализации ввода значений используем теги

Функция Onchange — убирает значения при добавлении их в форму.

Функция Onkeyup — убирает значения при добавлении их в форму кроме цифр.

Далее добавляем переменные в форму для тегов input, например, первое значение это латинская «x», второе вводимое значение в поле это латинская «y», а выходное значение это «summa».

Теперь чтобы форма заработала надо ее наделить разумом, то есть создать скрипт с помощью Java, который и будет вести расчеты.

Словом calculators можно изменить на любое, так как им мы даем только название функции.

А для x, y, z задаем переменные, которые были созданные ранее.

Далее переходим обратно к форме и для тега input задаем функцию, отвечающую за расчет значений.

Для этого добавляем в инпут команду onclick =»calculators (this.form)» которая и запустить алгоритма калькулятора.

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

Как установить калькулятор на сайт

Весь принцип работы калькулятора завязан на выполнении скрипта, поэтому каким-то из способов надо добавить скрипт на страницу записи WordPress.

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

В сети я нашел несколько путей как подключить JS скрипты к записям:

Шорткод. Данный способ основан на редактировании файла темы functions.php.

Здесь вам придется между вставить специальный код:

где вместо КОД вставляем свой скрипт, а для вызова шорткода на странице используем [ myJavascript1 ].

Функция wp_enqueue_script. С ее помощью можно подключить скрипт для конкретной страницы. Данный способ популярен, но требует больших знаний движка и его структуры.

Правка header.php. Один из наихудших методов, основанный на добавлении специального кода перед закрывающим тегом с номером страницы, в которой надо отобразить скрипт.

Конструкция iframe. Один из простейших способов, где надо создать новый файл и закинуть в него скрипт.

Далее загружаем этот файл к себе на хостинг, а в статье в том месте, где будет выводиться калькулятор размещаем код iframe, через который и будет отображаться содержимое из внешних файлов.

Лично я изначально вставлял калькулятор на блог последним способом, но этот метод стал неэффективным после появления мобильной версии сайта, так как выводимая форма не адаптирована под другие разрешения экранов.

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

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Но можно пойти и другим путем, об этом далее.

Готовые виджеты калькуляторов

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

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

Переходим в раздел «Плагины» и выбираем » Калькулятор мер и весов » через кнопку купить или название продукта.

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

На следующей странице смотрим пример работы модуля, описание функций.

Если все устраивает жмем «Купить» и в специальной форме указываем домен сайта, адрес электронной почты.

Далее к вам на почту придут данные для входа в личный кабинет пользователя, и реквизиты для оплаты продукта (WebMoney, Яндекс.Деньги) и ссылка для скачивания.

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

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Лицензию получите в ЛК после подтверждения оплаты.

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

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

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Как видите, даже без использования настроек плагина, а их не мало, он здорово вписался в мой шаблон, стабильно работает, адаптивен под мобильники и не надо ковыряться в кодах и что-то править на сайте.

Установка заняла считанные минуты.

На сегодня любой желающий может воспользоваться и другими калькуляторами:

Boile’r — справочник, который подскажет сколько варить тот или иной продукт.

Калькулятор Мартингейла — просчитывает ходы и компенсирует возможные убытки.

HaWoB — калькулятор роста и веса малыша (выводит форму расчета веса и роста малыша согласно ВОЗ).

HaWoC — калькулятор роста и веса ребенка (выводит форму расчета веса и роста ребенка согласно ВОЗ).

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

Кстати, сообщение от Яндекса через пару дней пропало. Наверное был сбой в работе алгоритмов. ))

Источник

Скрипт калькулятора на PHP.

Сделать калькулятор на php довольно просто! И мы уже один раз делали совсем простой и примитивный калькулятор с простыми математическими действиями на Php. В таком калькуляторе будет несколько полей для ввода и четыре знака. Совсем не обязательно реализовывать калькулятор на Php именно таким образом,, как сделано на этой странице, можно сделать cм. 3 вариант в абзаце онлайн калькулятор.

Онлайн калькулятор на PHP

О каких калькуляторах пойдет речь на данной странице!? На странице будет рассказано о двух калькуляторах.

Первый калькулятор : ссылка на онлайн калькулятор php, который делает только 4 операции.

Второй онлайн калькулятор на php – тоже… только 4 операции.

Алгоритм калькулятора PHP

Если мы пишем калькулятор на php, то это скрипт, а любого скрипта должен быть алгоритм!

Алгоритм скрипта будет такой:

Два поля ввода и кнопка Посчитать.

После заполнения формы будет отправляться яна сервер, и обрабатываться(складывать, вычитать, умножать, делить) в зависимости от выбранного знака!

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

Форма для калькулятора PHP

Скрипт для обработки запросов из калькулятора php

Стили для калькулятора php

О стилях мы тоже должны упомянуть, как мимум их здесь вывести:

Пример работы скрипта калькулятора на Php

Соберем весь php код вместе, результат вывода кода формы калькулятора:

Пример калькулятора на php на отдельной странице

Выше приведенный код калькулятор php, выведем на отдельной странице
И второй пример на отдельной странице, тот же калькулятор, только старая версия калькулятора php.

Источник

Делаем более-менее универсальный калькулятор услуг для сайта

Беглый анализ открытых данных показывает, что ежедневно в среднем 5 человек оставляют заявки на создание калькулятора на биржах фриланса — а еще несколько сотен интересуются вопросом в поиске. Часто запросы стандартны — и, конечно, на рынке сложился целый набор готовых предложений: от плагинов для конкретных CMS до калькуляторов, которые можно приобрести у студий. Рекорд, обнаруженный нами (см. в первом комментарии) — 24 999 рублей за довольно обычное решение.

Да, рынок есть рынок. Но поскольку мы в основном работаем с людьми, чьи сайты сделаны на конструкторах, у них нет 25 тысяч на один виджет. Вот и возникло желание написать калькулятор, которым они смогли бы пользоваться самостоятельно — и без изучения HTML, JS, JQuery и CSS.

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

В процессе работы над проектом нам удалось реализовать несколько находок в логике работы и дизайне калькулятора. Ими, а также полезными инструментами, и хотим поделиться с сообществом.

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

Как устроен конструктор калькуляторов

Пишем свою адаптивность

Лайфхак: как упростить формулы до азбуки

Чистим код с GULP (а не тем, о чем вы могли подумать)

Есть ли жизнь после жизни?

Как устроен конструктор калькуляторов

Начиная проект, мы обсуждали довольно хардкорные идеи, но в итоге пришли к drag-n-drop интерфейсу сборки, плюс админке, в которой человек может хранить и настраивать свои калькуляторы.

В начале было пустое поле. Регистрируясь на сервисе впервые, человек действительно видит пустую страницу с единственной кнопкой добавления нового проекта-калькулятора.

В будущем на этой странице будут появляться снимки-ссылки на калькуляторы пользователя, вот как тут:

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Для создания скриншота-превью калькулятора в кабинете мы использовали PhantomJS. Штука очень удобная, когда ты уже создал несколько калькуляторов, — при входе в кабинет сразу понятно, где какой из проектов.

Люди любят ползунок. Это стало понятно, когда мы запустили первых людей на сервис, и они стали выбирать, из каких элементов создать виджет.

Сам интерфейс создания калькулятора устроен похоже с ЛК — есть большое пустое поле, на которое можно добавлять элементы из боковой панели. Для старта мы выбрали 8 элементов. Пять отвечают непосредственно за калькулятор — это ползунок, выпадающий список, галочка, текстовое поле (для сбора почт, адресов и т.д.) и переключатель. Еще три — за привлекательность (картинка) и опцию заказа — текстовый блок и кнопка. Самым востребованным элементом из всех оказался ползунок.

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html
Сначала для создания ползунка мы выбрали расширения jQuery Scrollbar, но штука странно себя вела на мобильных. Поэтому мы взяли и модифицировали расширение JQuery-Range-Slider. Остальные элементы написали и стилизовали сами

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

Этот момент стал одним из самых хлопотных при отладке. Но зато сейчас запись процессов, происходящих на странице, когда человек перетаскивает элемент в калькулятор (это самый ресурсозатратный момент), выглядит так:

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Мы максимально порезали обработчики, оставив только необходимый минимум. С оптимизацией на клиентской части нам здорово помог инструмент Timeline из Google Chrome Developer Tools.

Исходно все элементы хранятся в объекте FIELDS — у каждого есть типовой HTML-шаблон и список опций. После перетаскивания элемента в рабочую область, нужные опции прилетают с сервера и подставляются в шаблон — например, на кнопку навешены отправка информации о заказе владельцу и клиенту: по почте через наш сервер, либо по смс — пока через API SmsSimple, но мы ищем другой сервис (и будем рады рекомендациям).

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Чтобы подставлять опции, к прототипу строки мы написали свой метод Signe. Работает он так:

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Drag’n’drop по-своему. Идея «бери больше — кидай дальше», на наш взгляд, это самый удобный способ сборки чего бы то ни было для обычного пользователя. Ну хотя бы потому, что красиво.

Когда мы рассматривали существующие решения для создания калькуляторов, в них смущала некая «прибитость элементов гвоздями» — факт, что элементы можно расположить довольно строго определенным образом: например, только друг под другом, а не рядом. Хотелось уйти от этого, для чего мы придумали систему точек.

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html
Cетка невидимых пользователю точек

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

Что это дает? Пользователь сразу может выбрать между таким:

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

И вот таким вариантом расположения элемента:

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

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

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

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html
Для создания самих визуальных эффектов при сборке калькулятора мы использовали jQuery UI и Animate.css

Абстрагируемся от системы мер и весов. Поскольку решение хотелось сделать универсальным и простым, мы отказались от дополнительных полей, в которых при создании калькулятора человек бы выбирал метры, граммы или рубли. Условные обозначения можно вписать — но чисто для удобства и ориентира. Для всех текстовых элементов мы использовали движок Medium Editor – очень удобный и простой текстовый редактор.

Чтобы доказать, что конструктор подходит для чего угодно, мы наделали разных примеров. А один из примеров наделал шума среди первых тестеров:

«Шаблон «расчет количества мяса» — просто убил: по картинке понятно, что шашлык, а по градациям — такое впечатление, будто из всех этих людей собрались шашлык делать) Ржали всем отделом».

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html
Пощупать калькулятор-шаблон, который развеселил целый отдел, можно здесь

Картинки — это важно. Для лучшего знакомства с товаром или услугой логично добавить изображения над теми же галочками или иным полем, отвечающем за выбор. Благодаря сетке точек, получилось реализовать вставку картинки в любую область рабочего поля. Иногда это полезно:

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html
За тему с ёлочками спасибо Владимиру Гынгазову, автору канала “Adobe Muse по-русски”

Сама реализация загрузки картинок сделана через FileSystem API&File API — весь процесс отлично описан в этой статье.

«А поиграться с. » Логично дать пользователю возможность подстроить цвета текстов, кнопок, фона и т.д. под цвета сайта. Для вызова и создания цветовой палитры мы использовали виджет Spectrum.

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Хранение данных и автосохранение. Данные о клиентской части калькулятора хранятся в формате JSON. Вы можете увидеть их структуру, просто написав в консоли SAVER.json на сервисе.

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Автосохранение происходит при каждом действии, если в калькуляторе есть активность. Изменения параллельно сохраняются и в DOM, причем каждый раз мы проверяем:

Если же в пределах 4 секунд ничего не происходит, калькулятор останавливает автосохранение до новых правок — так мы избавляемся от бессмысленных запросов к серверу.

Превью. Чтобы не затрачивать ресурсы браузера клиента, мы решили не анимировать интерфейс предпросмотра с помощью jQuery — поскольку с анимацией отлично справляется и CSS3: достаточно поменять класс в корне интерфейса, и у области просмотра изменится ширина и наружное оформление, стилизованное под смартфон и планшет.

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html
Внимание на консоль

Само создание адаптивной версии калькулятора стало отдельной песней.

Div-ная верстка: пишем свою адаптивность

В конструкторе сайтов uKit, для которого исходно создавался наш проект, используется сетка Twitter Bootstrap — популярное и заслуженное решение, чтобы адаптировать веб-элементы под экран посетителя. Но бутстреп предполагает два варианта дизайна: таблицу или колонку. Поэтому мы разработали собственный вариант адаптации калькулятора.

Т.к. структура калькулятора хранится в JSON, у нас есть родительский массив со строками, а в каждой строке — массив ячеек. Помимо этого, в ячейке есть массив суб-строк (и суб-ячеек), чтобы внутри было не одно поле, а несколько. Структура ячеек показана ниже:

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

У калькулятора есть родительский блок со стилем display: table, внутри у него есть table-row и table-cell, соответственно. Сам калькулятор отрисовывается на сайте во фрейме. Внутри фрейма размещены стили для адаптации — и когда фрейм становится достаточно узким, калькулятор без изменения HTML-сетки перебрасывает поля на новые строки. Сделано это с помощью изменения стиля display: если на широком калькуляторе это table-cell, то на узком становится block, и наше поле оказывается на новой строке.

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

Исходно-десктопный вид калькулятора зависит от ширины контейнера, в котором он находится, а калькулятор стремится показать в одной строке как можно больше полей. При сужении экрана функция, которая перестраивает сетку, проходит по всем строкам калькулятора, и если в строке есть «лишние» ячейки, ниже создается новая строка.

Упрощаем работу с формулами

Так как у нас есть полноценный кабинет управления калькулятором, мы решили отказаться от использования чего-то внешнего и экселеподобного, а в идеале — и сложных формул при создании и редактировании форм.

Вместо этого всего в отдельной вкладке есть элементы калькулятора в виде схемы. Схема содержит названия переменных и диапазоны значений для каждого из элементов калькулятора.

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html
Чтобы задействовать какое-то поле в расчете, достаточно указать его переменную в окошке слева. Формул может быть несколько: в этом случае в калькуляторе отображается несколько результатов, например “Обычная цена” и “Цена со скидкой”.

Переменные начинаются с буквы “A”. Если полей больше, чем букв в латинском алфавите, к имени переменной добавится еще одна буква: “AA” и так далее. Каждая буква связана с числовым id конкретного поля в калькуляторе. Найти готовое решение для преобразования числа в латинские буквы и комбинации букв нам не удалось. Поэтому мы написали следующий метод:

DAT.varName(9) // I
DAT.varName(39) // AM
DAT.varName(9650215) // UCALC

Будем рады, если он вам пригодится (с вопросами можно стучаться к condor-bird).

Оптимизируем скорость загрузки

Чем дальше, тем больше мы занимались интерфейсом сервиса. Но конечная цель — чтобы человек не только собрал у нас свой калькулятор, но и поставил его к себе на сайт в виде виджета (хотя можно и опубликовать калькулятор по ссылке и использовать в каком-нибудь соцсети).

То есть, пора было отрезать ломоть калькулятор от сервиса. Встал выбор между двумя путями:

Быстрым. В том же превью грузится виджет калькулятора — можно скрыть все элементы интерфейса конструктора, оставив поля, сетку и калькулирование — и вот он, по сути, виджет для стороннего сайта.

Но быстрый путь был отвергнут — потому что он замедлял загрузку: мы получили бы 1959 килобайт, 269 из которых заняли бы все CSS-ки, используемые в сервисе. А ведь одно из главных требований к виджету на сайте — чтобы он грузился быстро.

И правильным. Тут мы пошли к GULP — чтобы обрезать все лишнее, вроде переноса строк, и собрать один минифицированный файл с максимально чистым кодом. Почему GULP? На то есть важная причина — у нас был 41 файл (и, соответственно, 41 запрос к серверу), а мы хотели уместить все в один запрос. И мы получили то, что хотели.

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html
Это наш дефолтный шаблон. Была скорость загрузки курильщика

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html
Стала скорость загрузки здорового человека

Теперь мы оставляем от 140 до 180 килобайт — в зависимости от числа полей. Для каждого типа поля есть две версии: короткая и вдвое короче — для стороннего сайта.

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

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html
Это огромный калькулятор расходов на свадьбу, созданный реальным пользователем. Было так.

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html
Тот же проект. Стало так

Как видно на картинке ниже, самым тяжеловесным остается текстовое поле — его мы будем оптимизировать дальше, отдавая на сайт только опцию, которую выбрал пользователь (в настройках поля есть выбор между телефоном, почтой, текстом, числовым значением и т.д.). В остальном для каждого калькулятора мы подключаем только используемые модули.

Калькулятор на php и html. Смотреть фото Калькулятор на php и html. Смотреть картинку Калькулятор на php и html. Картинка про Калькулятор на php и html. Фото Калькулятор на php и html

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

Упрощаем автообновление калькулятора, встроенного на сайт

В идеальном случае пользователь собрал калькулятор, получил код для встраивания на сайт — и наступило счастье.

Но установка на сайт не всегда значит, что человек больше не будет трогать готовый калькулятор. Самый очевидный случай, когда требуется внести изменения, — это рост или снижение цены на услугу.

Поэтому для каждого встроенного калькулятора мы делаем две версии:

Именно для этого в системе присутствует большая зеленая кнопка «Сохранить» — пока вы её не тронули, мы не переносим на сайт изменения, сделанные в версии для редактирования, а просто запоминаем их через автосохранение.

Первые выводы

Состоят в том, что при создании онлайн-калькулятора и его админки, — задаче, имеющей массу готовых решений, — много места для новинок. Кому-то в новинку все, как brizing — конструктор калькуляторов стал первым боевым проектом, в котором ему доверили работу джуниора. Но и остальные открыли для себя много нового.

Открытий явно станет больше — и вы можете подкинуть нам еще идей и задачек: uCalc находится на стадии открытого тестирования, и мы будем благодарны всем, кто найдет время пощупать решение и отписать мысли и ощущения в комментариях, либо в личку мне, brizing и condor-bird.

UPD. Спасибо всем, кто принял участие в тестировании сервиса. Список ближайших обновлений вы можете найти здесь.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *