11:34 1.07.2017
В этом посте я расскажу как сделать самый простой калькулятор на PHP, этот калькулятор будет только прибавлять два числа, ни чего другого он делать не будет. Так же не будет всяких проверок. Все проверки и задачи с вычитанием, умножением и деление мы добавим позже. А сейчас пишем форму нашего самого простого калькулятора:
Форма имеет два поля для ввода чисел и кнопку Решить. Все выводится в одну строчку, если Вам надо, что бы вся форма выходила в столбик, добавти тег
Переходим к php стрипту калькулятора:
Вот и весь скрипт самого простого калькулятора!
Чуть позже будем добавлять в наш калькулятор вычисление, умножение и деление.
<form action="" method="post" />
<input type="text" name="a" />
<input type="text" name="b" />
<input type="submit" name="submit" value="Решить" />
</form>
Форма имеет два поля для ввода чисел и кнопку Решить. Все выводится в одну строчку, если Вам надо, что бы вся форма выходила в столбик, добавти тег
<br />
, после каждого поля.
Переходим к php стрипту калькулятора:
$a = $_POST['a']; #Получаем первое слагаемое
$b = $_POST['b']; #Получаем второе слагаемое
$result = $a + $b; #Прибавляем оба числа и результат записываем в переменную
echo 'Результат: '. $result; #Выводим результат на экран
Вот и весь скрипт самого простого калькулятора!
Чуть позже будем добавлять в наш калькулятор вычисление, умножение и деление.
- Жалоба
11:49 1.07.2017
Как и обещал рассказать, как к нашему самому простому калькулятору, который только прибавляет добавить возможность отнимать, умножать и делить. Использовать будем код с первого поста. И так добавляем выбор из двух задач: прибавить и отнять, для этого в нашу форму калькулятора, после:
добавляем:
Эти две строчки HTML кода и будут выбором между задачами сложения и вычитания. Добавив выбор, у нас появилась новая переменная
добавит:
Теперь переходим к решению задачи, где сначала нам потребуется ее найти, а искать ее мы будем условием. Эту строчку:
меняем на:
Теперь мы можем нашим калькулятором сложить или отнять. Но этого мало, калькулятор не умножает и не делит, сейчас исправим!
Значит после:
добавляем еще две строчки:
В скрипте, после:
вставляем:
В итоге должно получится так:
Форма калькулятора:
и сам скрипт:
Теперь калькулятор умеет прибавлять, отнимать, умножать и делить два числа.
<input type="text" name="b" />
добавляем:
<input type="radio" name="task" value="+" />Прибавить
<input type="radio" name="task" value="-" />Отнять
Эти две строчки HTML кода и будут выбором между задачами сложения и вычитания. Добавив выбор, у нас появилась новая переменная
$task
, которая также передается через глобальный массив POST, а значит надо принять ее в нашем скрипте. После:$b = $_POST['b']; #Получаем второе слагаемое
добавит:
$task = $_POST['task']; #Получаем задачу
Теперь переходим к решению задачи, где сначала нам потребуется ее найти, а искать ее мы будем условием. Эту строчку:
$result = $a + $b; #Прибавляем оба числа и результат записываем в переменную
меняем на:
if ($task == '+') { #Если задача стоит прибавить
$result = $a + $b;
}
else { #Если задача стоит отнять
$result = $a - $b;
}
Теперь мы можем нашим калькулятором сложить или отнять. Но этого мало, калькулятор не умножает и не делит, сейчас исправим!
Значит после:
<input type="radio" name="task" value="-" />Отнять
добавляем еще две строчки:
<input type="radio" name="task" value="*" />Умножить
<input type="radio" name="task" value="/" />Разделить
В скрипте, после:
if ($task == '+') { #Если задача стоит прибавить
$result = $a + $b;
}
вставляем:
elseif ($task == '*') { #Если задача стоит умножить
$result = $a * $b;
}
elseif ($task == '/') { #Если задача стоит разделить
$result = $a / $b;
}
В итоге должно получится так:
Форма калькулятора:
<form action="" method="post" />
<input type="text" name="a" />
<input type="text" name="b" />
<input type="radio" name="task" value="+" />Прибавить
<input type="radio" name="task" value="-" />Отнять
<input type="radio" name="task" value="*" />Умножить
<input type="radio" name="task" value="/" />Разделить
<input type="submit" name="submit" value="Решить" />
</form>
и сам скрипт:
$a = $_POST['a']; #Получаем первое слагаемое
$b = $_POST['b']; #Получаем второе слагаемое
$task = $_POST['task']; #Получаем задачу
if ($task == '+') { #Если задача стоит прибавить
$result = $a + $b;
}
elseif ($task == '*') { #Если задача стоит умножить
$result = $a * $b;
}
elseif ($task == '/') { #Если задача стоит разделить
$result = $a / $b;
}
else { #Если задача стоит отнять
$result = $a - $b;
}
echo 'Результат: '. $result; #Выводим результат на экран
Теперь калькулятор умеет прибавлять, отнимать, умножать и делить два числа.
12:01 1.07.2017
На данный момент задачу можно не выбрать, просто нажать кнопку Решить и условие будет сравнивать знак, которого нет. Не найдя подходящего знака, условие выводит то, что содержит в себе
в нашем примере задача в
Я не хочу калькулятор, который без выбора задачи, выбирал задачу сам, по этому сделаем проверку - была ли выбрана задача или нет, если задача не была выбрана, выведем сообщение об ошибке. Говоря другими словами сделаем выбор задачи обязательным. Для проверки переменной на заполненность будем использовать функцию
добавляем проверку переменной на пустоту:
После:
добавить фигурную скобку
Теперь если задача не выбрана, пользователь получит сообщение:
Теперь таким же образом давайте сделаем обязательными поля, добавим такую же проверку для ввода цифр. Значит после:
добавляем:
Вот и всё! Теперь все поля и выбор задачи обязательны!
Итог нашей конструкции:
HTML код остался без изменения:
А вот php скрипт значительно изменился:
else
:else { #Если задача стоит отнять
$result = $a - $b;
}
в нашем примере задача в
else
отнять.Я не хочу калькулятор, который без выбора задачи, выбирал задачу сам, по этому сделаем проверку - была ли выбрана задача или нет, если задача не была выбрана, выведем сообщение об ошибке. Говоря другими словами сделаем выбор задачи обязательным. Для проверки переменной на заполненность будем использовать функцию
empty()
. Делаем так: перед:$a = $_POST['a'];
добавляем проверку переменной на пустоту:
if (empty($_POST['task'])) { #Проверяем пуста или нет переменная
$result = 'Задача не выбрана. Пожалуйста, выберите задачу.';
}
else {
После:
else { #Если задача стоит отнять
$result = $a - $b;
}
добавить фигурную скобку
}
.Теперь если задача не выбрана, пользователь получит сообщение:
Задача не выбрана. Пожалуйста выберите задачу.
. Уже лучше!Теперь таким же образом давайте сделаем обязательными поля, добавим такую же проверку для ввода цифр. Значит после:
if (empty($_POST['task'])) { #Проверяем пуста или нет переменная
$result = 'Задача не выбрана. Пожалуйста, выберите задачу.';
}
добавляем:
elseif (empty($_POST['a'])) { #Проверяем пуста или нет переменная
$result = 'Вы не ввели число в первую форму. Пожалуйста, заполните все поля.';
}
elseif (empty($_POST['b'])) { #Проверяем пуста или нет переменная
$result = 'Вы не ввели число во вторую форму. Пожалуйста, заполните все поля.';
}
Вот и всё! Теперь все поля и выбор задачи обязательны!
Итог нашей конструкции:
HTML код остался без изменения:
<form action="" method="post" />
<input type="text" name="a" />
<input type="text" name="b" />
<input type="radio" name="task" value="+" />Прибавить
<input type="radio" name="task" value="-" />Отнять
<input type="radio" name="task" value="*" />Умножить
<input type="radio" name="task" value="/" />Разделить
<input type="submit" name="submit" value="Решить" />
</form>
А вот php скрипт значительно изменился:
if (empty($_POST['task'])) { #Проверяем пуста или нет переменная
$result = 'Задача не выбрана. Пожалуйста выберите задачу.';
}
elseif (empty($_POST['a'])) { #Проверяем пуста или нет переменная
$result = 'Вы не ввели число в первую форму. Пожалуйста, заполните все поля.';
}
elseif (empty($_POST['b'])) { #Проверяем пуста или нет переменная
$result = 'Вы не ввели число во вторую форму. Пожалуйста, заполните все поля.';
}
else {
$a = $_POST['a']; #Получаем первое слагаемое
$b = $_POST['b']; #Получаем второе слагаемое
$task = $_POST['task']; #Получаем задачу
if ($task == '+') { #Если задача стоит прибавить
$result = $a + $b;
}
elseif ($task == '*') { #Если задача стоит умножить
$result = $a * $b;
}
elseif ($task == '/') { #Если задача стоит разделить
$result = $a / $b;
}
else { #Если задача стоит отнять
$result = $a - $b;
}
}
echo 'Результат: '. $result; #Выводим результат на экран
12:06 1.07.2017
При открытии нашего калькулятора, он сразу пытается решить задачу, то есть срабатывает условие и выдает сообщение из первого if'а, в данном случаи это сообщение:
Значит, находим строчку:
и перед ней вставляем:
Находим:
добавляем после фигурную скобку:
Теперь пока кнопка не будет нажата, калькулятор ни чего делать не будет.
Если в поля нашего калькулятора вставить вместо цифр буквы, то они будут считаться, как ноль (
И так провожу инструктаж: находим в нашем скрипте следующий код:
и после него вставляем:
Теперь при вводе любых символов, кроме цифр и минуса (-), пользователь получит сообщение:
Хочу предложить еще один вариант выбора задачи с цифрами. Этот вариант с ниспадающим меню, занимает чуть меньше места на странице. Для установки ниспадающего выбора задачи, просто замените HTML форму на эту:
Задача не выбрана. Пожалуйста выберите задачу.
. Я думаю это не правильно, думаю будет лучше если калькулятор будет выполнять свою работу, только тогда, когда ему отдадут команды, то есть введут необходимые данные и нажмут кнопку Решить. И сейчас мы это исправим! В HTML форму мы не полезем, работать будем только с PHP скриптом, и то совсем чуть-чуть. Для проверки были ли нажата кнопка или нет, будем использовать функцию isset()
.Значит, находим строчку:
if (empty($_POST['task'])) { #Проверяем пуста или нет переменная
и перед ней вставляем:
if (isset($_POST['submit'])) { #Если кнопка была нажата
Находим:
$result = $a - $b;
}
}
добавляем после фигурную скобку:
}
, в итоге получаем такой код (HTML форма осталась без изменений):if (isset($_POST['submit'])) { #Если кнопка была нажата
if (empty($_POST['task'])) { #Проверяем пуста или нет переменная
$result = 'Задача не выбрана. Пожалуйста выберите задачу.';
}
elseif (empty($_POST['a'])) { #Проверяем пуста или нет переменная
$result = 'Вы не ввели число в первую форму. Пожалуйста, заполните все поля.';
}
elseif (empty($_POST['b'])) { #Проверяем пуста или нет переменная
$result = 'Вы не ввели число во вторую форму. Пожалуйста, заполните все поля.';
}
else {
$a = $_POST['a']; #Получаем первое слагаемое
$b = $_POST['b']; #Получаем второе слагаемое
$task = $_POST['task']; #Получаем задачу
if ($task == '+') { #Если задача стоит прибавить
$result = $a + $b;
}
elseif ($task == '*') { #Если задача стоит умножить
$result = $a * $b;
}
elseif ($task == '/') { #Если задача стоит разделить
$result = $a / $b;
}
else { #Если задача стоит отнять
$result = $a - $b;
}
}
}
echo 'Результат: '. $result; #Выводим результат на экран
Теперь пока кнопка не будет нажата, калькулятор ни чего делать не будет.
Если в поля нашего калькулятора вставить вместо цифр буквы, то они будут считаться, как ноль (
0
), что не есть хорошо. На мой взгляд, лучше сообщить пользователю о том, что число было введено не корректно, что разрешено использовать только цифры от ноля (0
) до девяти (9
) и минус (-
), для решения примеров с числами меньше ноля. Сейчас мы исправим этот недочет с буквами. Исправлять будем функцией preg_match(), чья задача проводить проверку на соответствие регулярному выражению.И так провожу инструктаж: находим в нашем скрипте следующий код:
elseif (empty($_POST['b'])) { #Проверяем пуста или нет переменная
$result = 'Вы не ввели число во вторую форму. Пожалуйста, заполните все поля.';
}
и после него вставляем:
elseif (!preg_match("/^([0-9\-])+$/", $_POST['a'])) { #Проверяем на корректность данных задачи
$result = 'В поле можно вставить только цифры.';
}
elseif (!preg_match("/^([0-9\-])+$/", $_POST['b'])) { #Проверяем на корректность данных задачи
$result = 'В поле можно вставить только цифры.';
}
Теперь при вводе любых символов, кроме цифр и минуса (-), пользователь получит сообщение:
В поле можно вставить только цифры.
.Хочу предложить еще один вариант выбора задачи с цифрами. Этот вариант с ниспадающим меню, занимает чуть меньше места на странице. Для установки ниспадающего выбора задачи, просто замените HTML форму на эту:
<form action="" method="post" />
<input type="text" name="a" />
<select name="task">
<option value="+">Прибавить</option>
<option value="-">Отнять</option>
<option value="*">Умножить</option>
<option value="/">Разделить</option>
</select>
<input type="text" name="b" />
<input type="submit" name="submit" value="Решить" />
</form>