如何在不重新加载页面的情况下获得执行PHP函数的按钮?

时间:2019-05-11 17:16:34

标签: php jquery ajax function variables

我是一名高中生,从事学校ICT项目,所以我对PHP和Ajax相当陌生。我正在尝试建立一个PHP页面,在其中单击按钮时,将生成一个新的正确的数学和。每次重新加载页面时,我都可以生成一个随机总和,并且可以使用按钮来更改正在使用Ajax的文本,但是我想使用Ajax按钮来生成新的总和而不重新加载页面,因为我打算使用稍后将网站作为基于Web的应用程序,但是我不确定如何实现。

我看过W3Schools的网站,但找不到结合这两者的任何东西。

这是更改文本的按钮的代码:

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $.ajax({url: "/ajaxtest.php", success: function(result){
      $("#div1").html(result);
    }});
  });
});
</script>
</head>
<body>
<div id="div1"><h2>Testing Button</h2></div>
    <button>boom</button>
    </body>

这是一个生成新总和的PHP函数(方程的最小结果为2,最大为20):

<?php
    $min = 1;
    $max = 10;
    $a = mt_rand($min, $max);
    $b = mt_rand($min, $max);

function sum(int $x, int $y) {
    $answer = $x + $y;
    return $answer;
}

echo "$a + $b = " . sum($a,$b) . "<br>";

echo $answer;
?>

ajaxtest.php仅包含更改div1中的文本的文本。我尝试将函数粘贴到此文件中,但是它什么也没做。

当单击按钮时,我希望会生成一个新的等式来替换div1中的文本,例如1 + 2 = 3,然后再次单击将用新公式替换以前的公式,例如4 + 5 = 6。我不打算将文本保留在div1中,只是在其中生成数字。谢谢。

1 个答案:

答案 0 :(得分:0)

您的PHP代码给出了错误信息...

  

可捕获的致命错误:传递给sum()的参数1必须是一个实例   int,给定的整数,在C:\ Users \ wayne \ Desktop \ 127.0.0.1 \ New中调用   第13行上的folder \ ajax \ ajaxtest.php并且在   C:\ Users \ wayne \ Desktop \ 127.0.0.1 \ New folder \ ajax \ ajaxtest.php在线   8

...

将功能更改为...

function sum( $x, $y) {
    $answer = $x + $y;
    return $answer;
}

...消除了错误并同意您的回声,显然1.5 + 2.5将不等于3。

echo "$a + $b = " . sum($a,$b) . "<br>";

更新...顺便说一句,html在我的机器上正常工作。但是,将脚本放在页面底部是当前的最佳做法,因为顶部的脚本会阻止渲染和读取随后可能出现的所有CSS链接。

由于ajax是异步的,因此无需将其放在顶部。

更新另一个建议,它将为您解决问题...

不应将您的开发系统配置为不报告错误,而应该将运行时配置不报告错误。

使用具有...属性的快捷方式,开发系统仅需要安装php。

C:\ PHP \ php.exe -S 0.0.0.0:80 -d extension = php_openssl.dll

...启动PHP开发Web主机。该扩展显然不是必需的,但可能很有用。