正如标题所说,我想在第一个函数执行后执行第二个函数。换句话说,如果用户
点击"抽取第一个号码"按钮,将显示一个1-10的随机数和一个"抽取第二个号码"按钮,然后如果用户点击"抽取第二个号码"按钮,将显示另一个1-10的随机数。我已经尝试了以下代码,但是当我单击"绘制第二个数字"按钮时,它会将我返回到该过程的开始。
<?php
if (isset($_POST['firstnumber'])) {
function roll () {
return mt_rand(1,10);
}
echo 'First Number: '.roll().'<form method="post"><input type="submit" value="Draw second number" name="secondnumber"></form>';
if (isset($_POST['secondnumber'])) {
echo 'Second Number: '.roll();
}
}
?>
<form method="post">
<input type="submit" value="Draw first number" name="firstnumber">
</form>
我希望代码在单击"第二个数字"按钮时显示第二个数字,而不是转到初始代码。
在文件的开头,请检查以下条件
<?php if (isset($_POST['firstnumber'])) {
因此,这个 if 语句中的所有内容只有在语句计算为 true 时才执行。
如果您要提交硬编码的 HTML 公式("第一个"公式(。If 语句的计算结果为 true,因此其中的代码将运行。
在 If 语句中,您调用先前定义的函数roll();
并回显出另一个公式器。
这个公式("第二个"公式(只有在上述 if 语句被计算为真时才会被回显出来。
如果您现在提交第二个公式("第二个"公式(,则顶部的 if 语句的计算结果为false,因为未设置$_POST中的字段firstnumber
!
为什么没有设置?因为您刚刚提交了一个公式("第二个"(,其中没有任何名为firstnumber
的字段。
请尝试以下代码:
<?php
function roll() {
return mt_rand(1,10);
}
if (isset($_POST['firstnumber']) === true || isset($_POST['secondnumber']) === true) {
if (isset($_POST['firstnumber'])) {
echo 'First Number: ' . roll() . '<form method="post"><input type="submit" value="Draw second number" name="secondnumber"></form>';
}
if (isset($_POST['secondnumber'])) {
$secondNumber = roll();
}
}
?>
<form method="post">
<input type="submit" value="Draw first number" name="firstnumber">
</form>