как очистить экран калькулятора в php - PullRequest
0 голосов
/ 26 апреля 2020

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

файл php возвращает код html, где у меня есть <input type='text' named result value='$value'> (экран калькулятора).

и ряд кнопок отправки с именем и значением 1,2,3, +, ... когда я нажимаю кнопку, в результате в строку добавляется символ , когда я нажимаю на кнопку «=», она читает строку с eval(); и вычисляет ее. Я пытался с функцией, но я не могу понять, некоторые идеи или советы будут очень приветствоваться.


$value = '';
if(isset($_GET['result']))
$value.=$_GET['result'];

if(isset($_GET['1']))
    $value .='1';
    if(isset($_GET['2']))
    $value .='2';

//and so on ...
if(isset($_GET['+']))
  $value .='+';
  if(isset($_GET['-']))
  $value .='-';
  if(isset($_GET['='])){
      eval('$result = '.$value.';');
      $value = $result;}

return "<form action='index.php' method='get'>
<br><input type='text'   name='result' value='$value'><br>
<input type='submit' name='1' value='1'>
<input type='submit' name='2' value='2'>
//and so on ...

(остальная часть кода html загружается в другом месте)

Ответы [ 2 ]

0 голосов
/ 26 апреля 2020

Этот PHP код ниже будет выполнять JavaScript код для очистки поля ввода,

echo"<script>document.getElementsByName('result')[0].value = '';</script>

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

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

First Number
<input type="text" id="firstNumber" value="6" /><br>
Second Number
<input type="text" id="secondNumber" value="5" /><br>
Result
<input type="text" id="result" /><br>
<button type="button" onclick="Calculate();">Calculate</button>
<script>
    function Calculate(){
        let firstNumber;
        let secondNumber;
        firstNumber  = document.getElementById("firstNumber").value;
        secondNumber = document.getElementById("secondNumber").value;
        document.getElementById("result").value = Number(firstNumber) + Number(secondNumber);
        // "Number" is to tell javascript its a number not a string/text,
        // without "Number" it will concat both numbers
    }
</script>
0 голосов
/ 26 апреля 2020

Вы должны использовать скобки для ваших условий, особенно если вы их вкладываете:

if(isset($_GET['result'])) {
    $value .= $_GET['result'];
}

И ваш отступ делает его похожим на Python, кто-то, читающий его, примет его за условие, вложенное в другое условие и полагайте, что ваш if (isset ($ _ GET ['2'])) равен true, только если if (isset ($ _ GET ['1'])) также равен true. Переключение - лучшее решение здесь (и даже лучше для операторов, поскольку у вас, вероятно, только четыре из них), но в любом случае вы должны назначать каждый член вашей операции в одной переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...