当我在Firefox中使用document.write(onClick)时页面重新加载

Page reloads when I use document.write(onClick) in Firefox

本文关键字:新加载 加载 onClick Firefox document write      更新时间:2023-09-26

我用PHP为一个基本的计算器制作了一个代码,我不得不使用JavaScript在屏幕上显示它。但是,当我尝试在Firefox中进行任何计算时,页面会以空白代码重新加载,并且仅显示0。

在谷歌浏览器中,一切看起来都很好。

我尝试将document.open()document.close(),这在 Chrome 中仍然可以正常工作,但在 Firefox 中没有任何反应。

有人对此有解决方案吗?

这是我的函数:

<?php 
function calcular(){
  $n1 = isset($_POST["val1"])?$_POST["val1"]:0;
  $n2 = isset($_POST["val2"])?$_POST["val2"]:0;
  $op = isset($_POST["operacao"])?$_POST["operacao"]:1;
  switch ($op) {
    case 'subtracao':
      $res = $n1 - $n2;
      break;    
    case 'multiplicacao':
      $res = $n1 * $n2;
      break;
    case 'divisao':
      $res = $n1 / $n2;
      break;
    default:
      $res = $n1 + $n2;
      break;
  }
  echo $res;
}
?>

表单上的代码:

<input type="text" name="resultado" value="<?php calcular(); ?>">
<input type="submit" name="botao" value="Calcular" onclick="document.open();document.write('<?php calcular(); ?>');document.close();">

谢谢!

你不需要 JavaScript。只需保留您的 php 函数,这应该可以工作:

<?php
function calcular() {
    // your function...
}
?>
<form method="post">
    <p><input type="text" name="val1"></p>
    <p><input type="text" name="val2"></p>
    <p><input type="text" name="operacao"></p>
    <p><input type="submit"></p>
</form>
<div>
    <?php calcular(); ?>
</div>