在提交表单之前如何隐藏 php 页面的一部分


How hide part of an php page until form is submitted

我用php制作了这个脚本,但我需要隐藏最后两个表,直到单击"Procurar uma Letra"。我是怎么做到的?
或者,如果$_POST[letra]为空,请将其定义为"空信"单词或其他内容......

我尝试了几件事,但没有奏效。我该怎么做??

<html>
<head>
<script>
function validateForm(form) {
    var x = document.forms["myForm"]["nome"].value;
    if (x==null || x=="") {
        alert("Nome a Inserir, deve ser preenchido");
        return false;
    }
    var y = document.forms["myForm"]["sexo"];
    if ( ( y[0].checked == false ) && ( y[1].checked == false ) ) {
        alert ( "Por favor escolha: Nome Masculino ou Feminino" ); 
        return false;
    }
}
</script>
</head>
<body>
<h1>BASE DE DADOS DE NOMES PR&Oacute;PRIOS</h1>
<br>
<h3>Enviar um nome para a base de dados</h3>
<form name="myForm" action="insert.php" onsubmit="return validateForm(this.form)" method="post">
Nome a inserir: <input type="text" name="nome" /><br><br>
<input type="radio" name="sexo" value="m" /> Nome Masculino&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="radio" name="sexo" value="f" /> Nome Feminino <br><br>
<input type="submit" value="Enviar">
</form>
<form action="index.php" method="post">
Ir para a letra:    <input type="text" name="letra" />
<input type="submit" value="Procurar Letra">
</form>
<br><br><br>
</body>
</html>


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$database ="nomes";
$con=mysqli_connect($servername,$username,$password,$database);
$masculinos = mysqli_query($con,"SELECT nome FROM nomes WHERE sexo = 'm';");
$femininos = mysqli_query($con,"SELECT nome FROM nomes WHERE sexo = 'f';");
$letramasculinos = mysqli_query($con,"SELECT nome FROM nomes WHERE nome LIKE '$_POST[letra]%' AND sexo = 'm';");
$letrafemininos = mysqli_query($con,"SELECT nome FROM nomes WHERE nome LIKE '$_POST[letra]%' AND sexo = 'f';");
echo "<table style='display: inline-block;' width='150px' border='1'>
<tr>
<th>Nomes Masculinos</th>
</tr>";
while($row = mysqli_fetch_array($masculinos))
{
echo "<tr>";
echo "<td><center>" . $row['nome'] . "</center></td>";
echo "</tr>";
}
echo "</table>";
echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo "<table style='display: inline-block;' width='150px' border='1'>
<tr>
<th>Nomes Femininos</th>
</tr>";
while($row = mysqli_fetch_array($femininos))
{
echo "<tr>";
echo "<td><center>" . $row['nome'] . "</center></td>";
echo "</tr>";
}
echo "</table>";
echo "<table style='display: inline-block;' width='150px' border='1'>";
echo "<br><br><br>";
while($row = mysqli_fetch_array($letramasculinos))
{
echo "<tr>";
echo "<td><center>" . $row['nome'] . "</center></td>";
echo "</tr>";
}
echo "</table>";
echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo "<table style='display: inline-block;' width='150px' border='1'>";
while($row = mysqli_fetch_array($letrafemininos))
{
echo "<tr>";
echo "<td><center>" . $row['nome'] . "</center></td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>

PHP 手册给出了如下答案:

<?php if ($expression == true): ?>
  This will show if the expression is true.
<?php else: ?>
  Otherwise this will show.
<?php endif; ?>

在此示例中,PHP 将跳过条件不是的块 满足,即使它们在 PHP 打开/关闭标签之外,PHP 根据条件跳过它们,因为 PHP 解释器将 跳过条件中包含的块,不满足的条件。为 输出大块文本,退出PHP解析模式是 通常比通过回显或发送所有文本更有效 打印。

这被称为"从 HTML 转义"。您可以将$_POST[]放在条件中。

好的,

所以解析的代码,所以每个人都可以看到:

if(isset($_POST['submit'])){
     //tables will shown only after submitted
}

并且提交表单输入必须像这样声明:

<input type="submit" name="submit" value="Submit">