当前位置: 首页 > 知识库问答 >
问题:

如何清除PHP中计算器的屏幕

戚飞
2023-03-14

我试图找到一种方法来擦除文本屏幕从我的计算器,当你按下 /-按钮,使其行为更像一个真正的计算器。

php文件返回html代码,其中我有一个

和一系列提交按钮,名称和值为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个答案

段成益
2023-03-14

应使用括号表示条件,尤其是嵌套条件时:

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

你的缩进使它看起来像Python,阅读它的人会把它误认为嵌套在另一个条件中的条件,并且相信你的if(isset($_GET['2'])是真的,只有if(isset($_GET['1']))也是真的。在这里,开关是一个更好的解决方案(对运算符来说更好,因为您可能只有四个运算符),但是无论如何,您应该在一个变量中分配操作的每个项。

甘君之
2023-03-14

下面的PHP代码将执行JavaScript代码来清理输入字段,

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

这应该可以解决您的问题,但我必须告诉您,PHP不适合制作web计算器,您需要使用JavaScript来制作真正的计算器,而无需刷新页面。

请将下面的代码复制到一个超文本标记语言文件中,然后尝试一下,这样你就可以知道它是如何工作的了。

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>
 类似资料:
  • 问题内容: 运行GO脚本时,Golang中是否有任何标准方法可以清除终端屏幕?还是我必须使用其他一些库? 问题答案: 注意: 运行命令以清除屏幕不是安全的方法。在这里也检查其他答案。 您必须为每个不同的OS定义一个清晰的方法,像这样。当用户的操作系统不受支持时,它会慌乱 (命令执行来自@merosss的答案)

  • 问题内容: 我正在为Swift2中的命令行编写BASIC解释器,但是我找不到实现简单命令CLS(从终端清除所有文本的方法)的方法。我应该只是在循环中打印空格还是有功能?我不知道那会清除终端屏幕吗? 问题答案: 将内置命令与 或(询问Google) 或者,通过命令行使用AppleScript模拟Ctrl + L的按下: 编辑:在较新版本的Swift中不再可用。

  • 我想知道如何才能清除控制台屏幕在Java。我使用的IDE是IntelliJ IDEA。例如:在C语言中我们用来写:clrscr();

  • 我想用PHP来计算简单的代数表达式,比如,,通过

  • 我正在制作一个CLI计算器,我正在尝试添加一个clear按钮,但无法确定如何清除所有用户输入并从头开始显示。我尝试使用重置方法,但似乎没有奏效。

  • 我制作了一个类,在draw函数中,我画了一个文本区域,一些静态文本,并给屏幕上色。draw函数位于while循环中。我希望整个pygame屏幕除输入框外都清晰,并且我希望屏幕改变颜色。我该怎么做?我的代码如下: ######################################################################################### 皮加梅。