如果第一个$ _GET字段为空但第二个字段为值,则回显以填充缺失值

时间:2016-11-05 22:53:58

标签: php forms

我希望它说"请填写下面的表格:"首先,在任何输入之前,但如果他们输入年龄但没有名字,我希望它说: "请输入一个名字:" 如果他们输入一个名字但没有年龄,那么: "请输入您的年龄:" 但如果他们没有提交任何内容: "错误:请输入您的姓名和年龄以继续"

这是我的代码:

   if( $_GET["name"] && $_GET["age"] ) {
  echo "<p>Welcome ". $_GET['name']. " ... ";
  echo "You are ". $_GET['age']. " years old.</p>";

  exit();
   } elseif ( $_GET["name"] == FALSE ) {
       echo "<p>Please fill in the form below:</p>";
   } elseif ( $_GET["age"] == FALSE ) {
       echo "<p>Please fill in the form below:</p>";
   } elseif ( $_GET["name"] == FALSE && $_GET["age"] ) {
       echo "<p>Please fill in your name:</p>";
   } elseif ( $_GET["age"] == FALSE && $_GET["name"] ) {
       echo "<p>Please fill in your age:</p>";
   }

我只是在学习PHP,而且我已经尝试了所有我能想到的东西,这就是我到目前为止所取得的成就!

谢谢。

1 个答案:

答案 0 :(得分:1)

if(compare(*argv[i],*argv[i+1])) 替换为empty(),您几乎就在那里

您的表格:

FALSE

然后你的PHP:

<form method='post' ... >
 <input type='text' name='name' value=''>
...
</form>

您应该重新构建逻辑,以便您的两个值是独立的

  • 检查名称是否已填写。
  • 检查年龄是否已填写。
  • 将echo语句返回给用户。

所以上面的一系列 if( $_POST["name"] ... ) { ... exit; } elseif ( empty($_POST["name"]) ) { echo "<p>Please fill in the form below:</p>"; } elseif ( empty($_POST['age'] || !is_numeric($_POST["age"]) ) { echo "<p>Please fill in the form below:</p>"; } elseif ( empty($_POST['name'] && !empty($_POST['age'] ) { echo "<p>Please fill in your name:</p>"; } elseif ( !empty($_POST['name'] && empty($_POST['age']) { echo "<p>Please fill in your age:</p>"; } 陈述可以变成......

elseif

if(empty($_POST['name'])){ $notice .= " Please enter your name."; } if(empty($_POST['age'])){ $notice .= " Please Enter your age." } print $notice. 将新定义连接到变量的当前(或空)值的末尾。你可以每次打印.=,因为它是空的(没有打印)或者它有一个值,这是你想要打印的东西,所以每次都赢了。