任何方法可以防止回声打印在需要之前



我有一个完美工作的乘法表,除了一个小小的不幸。我需要消息"无效的条目!"仅当我通过输入字段提交空查询时出现。问题在于消息在那里,在我的本地主机中首次打开桌子时凝视着我。

有什么想法吗?预先感谢。

代码:

<html>
<form method="post" action="php32-table.php">
  <input type="text" name="num">
  <input type="submit" value="get table">
</form>
</html>
<?php
$num = isset($_POST["num"]) ? $_POST["num"] : "";
  if($num) {
  for($i = 1; $i <= 10; $i++)
  {
  $mul = $num * $i;
  echo "$num * $i = $mul<br>";
  }
  } else {
  echo "invalid entry!";
  }
?>

num将始终设置,因为它是文本字段。您需要做的是检查字段是否为空。下面的代码应起作用。

<?php
  if (isset($_POST["submit"])){
    if(!empty(trim($_POST['num'])) {
       $num = $_POST['num'];
       for($i = 1; $i <= 10; $i++)
       {
          $mul = $num * $i;  
          echo "$num * $i = $mul<br>";
       }
    } else {
         echo "invalid entry!";
    }
  }
?>

您可以检查是否设置了$_POST["num"]变量。这样,您就可以知道表格是否已发布。

<?php
  if (isset($_POST["num"]))
  {
    $num = isset($_POST["num"]) ? $_POST["num"] : "";
    if ($num) {
      for ($i = 1; $i <= 10; $i++)
      {
        $mul = $num * $i;
        echo "$num * $i = $mul<br>";
      }
    } else {
      echo "invalid entry!";
    }
  }
?>

我删除了用于测试目的的操作的链接,我也更喜欢亲自运行同一文件中的表单的PHP,因此下面我的示例是如何做到这一点。您可以随时参考您的原始内容,并将PHP放在php32-table.php文件中。

您可以通过在name="submit"中添加如下:

来从提交侧运行此操作。
<form method="post" action="">
    <input type="text" name="num">
    <input type="submit" value="get table" name="submit">
</form>

您可以检查是否已使用isset按下提交按钮,并且是否已单击,然后在{}之间运行代码如下:

<?php
if (isset($_POST['submit']))
{
    $num = isset($_POST["num"]) ? $_POST["num"] : "";
    if ($num) {
        for ($i = 1; $i <= 10; $i++)
        {
            $mul = $num * $i;
            echo "$num * $i = $mul<br>";
        }
    } else {
        echo "invalid entry!";
    }
}
?>

说实话,要保持更清洁,我要删除:$num = isset($_POST["num"]) ? $_POST["num"] : "";,然后将该行更改为:

if (!empty($_POST['num']))
{
    // run code 
} else {
    // output error
}

将您的输入类型更改为号码。

<input type="number" name="num">

在这里php代码

if(isset($_POST["num"])){
$num = $_POST["num"];

  if($num)
  {
      for($i = 1; $i <= 10; $i++)
      {
        $mul = $num * $i;
        echo "$num * $i = $mul<br>";
      }
  }
  else
  {
    echo "invalid entry!";
  }
}
?>

您必须检查$ _post ['submit']是否设置

<html>
<form method="post" action="php32-table.php">
  <input type="text" name="num">
  <input type="submit" name='submit' value="get table">
</form> 
</html>
<?php
if (isset($_POST["submit"])){
$num = isset($_POST["num"]) ? $_POST["num"] : "";

  if($num) {
  for($i = 1; $i <= 10; $i++)
  {
  $mul = $num * $i;
  echo "$num * $i = $mul<br>";
  }
  } else {
  echo "invalid entry!";
  }
}
?>

最新更新