<?php
// current formula in input box
if (isset($_POST['txt'])) {
$current_txt = $_POST['txt'];
}
if (isset($_POST['select1'])) {
$message = "1";
}
if (isset($_POST['select2'])) {
$message = "2";
}
if (isset($_POST['select3'])) {
$message = "3";
}
if (isset($_POST['select4'])) {
$message = "4";
}
if (isset($_POST['select5'])) {
$message = "5";
}
if (isset($_POST['select6'])) {
$message = "6";
}
if (isset($_POST['select7'])) {
$message = "7";
}
if (isset($_POST['select8'])) {
$message = "8";
}
if (isset($_POST['select9'])) {
$message = "9";
}
if (isset($_POST['select0'])) {
$message = "0";
}
if (isset($_POST['select+'])) {
$message = "+";
}
if (isset($_POST['select-'])) {
$message = "-";
}
if (isset($_POST['select/'])) {
$message = "/";
}
if (isset($_POST['select*'])) {
$message = "*";
}
if (isset($_POST['clear'])) {
$message = "clear";
}
if (isset($_POST['calculate'])) {
$message = "calc";
}
if ($message == "calc") {
// Calculate using eval
$current_txt .= " = " . eval('return ' . $current_txt . ';');
} else {
// Append input to formula
$current_txt .= $message;
}
if ($message == "clear") {
$current_txt = "";
}
?>
<div style = "padding-left: 200px; margin-top: 100px">
<form method = "post">
Enter value: <input type = "text" name = "txt" value = "<?php
echo $current_txt;
?>" >
<div style = "padding-left: 105px"><br>
<input type = "submit" name = "select1" value = "1">
<input type = "submit" name = "select2" value = "2">
<input type = "submit" name = "select3" value = "3">
<input type = "submit" name = "select4" value = "4"><br><br>
<input type = "submit" name = "select5" value = "5">
<input type = "submit" name = "select6" value = "6">
<input type = "submit" name = "select7" value = "7">
<input type = "submit" name = "select8" value = "8"><br><br>
<input type = "submit" name = "select9" value = "9">
<input type = "submit" name = "select0" value = "0">
<input type = "submit" name = "select+" value = "+">
<input type = "submit" name = "select-" value = "-"><br><br>
<input type = "submit" name = "select/" value = "/">
<input type = "submit" name = "select*" value = "*">
<input type = "submit" name = "clear" value = "clear"> <br><br>
<input type = "submit" name = "calculate" value = "calculate">
</div>
</form>
</div>
когда я делаю какую-либо операцию, она работает. например, если я хочу добавить два числа, например 5 + 6 = 11, но опять же, если я хочу добавить, скажем, число 5 к примерному оцененному ответу 11 + 5 = 16, тогда его ошибка отображения, которая означает только один раз, когда я могу сделать операцию снова, если я хочу выполнить операцию с оцененным ответом на ее отображение ошибки, я пытаюсь исправить эту проблему, но у меня нет способа сделать это, поэтому может ли кто-нибудь сообщить мне, как исправить эту проблему. ?






Обновите строку (я записал вашу строку):
if ($message == "calc") {
// Calculate using eval
// $current_txt .= " = " . eval('return ' . $current_txt . ';');
$current_txt = eval('return ' . $current_txt . ';');
}
Надеюсь, это решит вашу проблему:
Но я хотел бы реализовать ajax вместо отправки страницы
мне поручили делать это только на php.
Хорошо, как хотите ... Но реализация Ajax - тоже оптимизированный способ.
хорошо, я постараюсь использовать и это, в любом случае спасибо за руководство.
if ($message == "calc")
{
// Calculate using eval
//Add Below line for extact last expression calculation
$cal_arr=array_reverse(explode(" = ",$current_txt));
$current_txt .= " = " . eval('return ' . $cal_arr[0] . ';');
}
Вам нужно добавить только два изменения
1-й добавить предыдущий номер к результату
if ($message == "calc") {
$result = eval('return ' . $current_txt . ';');
$current_txt = $current_txt.'='.$result;
}
2-й получить значение результата из строки с функцией разнесения
if (isset($_POST['txt'])) {
$current_txt = $_POST['txt'];
$current_txt = end(explode(" = ",$current_txt));
}
@sameerpatil: скопируйте, вставьте этот код: jsfiddle.net/nikleshraut/s5n53zu2 и запустите
Спасибо, это действительно решило мою проблему. Большое спасибо