123456patil Ответов: 1

Php калькулятор с использованием одной формы ввода


Цитата:
когда я делаю какую-либо операцию, она работает нормально, как 5+6 = 11, но опять же, если я хочу добавить, скажем, число 5 к оцениваемому ответу, то это означает, что только один раз я могу сделать операцию снова, если я хочу сделать операцию, показывающую ошибку. Как исправить эту проблему любое предложение ?


Что я уже пробовал:

<?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>

Sunasara Imdadhusen

Вы должны преобразовать свое значение в число

123456patil

хорошо спасибо

1 Ответов

Рейтинг:
0

W∴ Balboos, GHB

Как только вы получите свой итог, что вы будете делать с результатом?

Вам нужно поместить результат в какое-то хранилище и заставить ваше приложение искать его, если у него недостаточно входных элементов (т. е. вы не начали с нового a+b)


что-то вроде этого (псевдокод) для добавления:

// Assuming 'a' is the first of the pair of operators
  if(b is undefined) b = c;
  c = a + b;
  write c;


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