我是一名高中生,从事学校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中,只是在其中生成数字。谢谢。
答案 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主机。该扩展显然不是必需的,但可能很有用。