如何在不影响 PHP 中第一个函数的情况下执行第二个函数?



正如标题所说,我想在第一个函数执行后执行第二个函数。换句话说,如果用户

点击"抽取第一个号码"按钮,将显示一个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>

最新更新