如果输入为空,则隐藏段落

时间:2013-09-25 16:34:23

标签: php html

我有一个小函数,可以从我的html页面获取输入值,并通过一个php函数将它们显示在列表中。我的目标是,如果一个字段留空,那么PHP脚本不会回显任何内容,因此它会完全跳过该实例。告诉你的不仅仅是谈论当然:

HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 1</title>
</head>

<body>

<form method="POST" action="test3.php" name="form">

<p>Please enter your name:</p>
<input type="text" name="1"></input>
<br />

<input type="text" name="2"></input>
<br />

<input type="text" name="3"></input>
<br />

<input type="text" name="4"></input>
<br />

<input type="text" name="5"></input>
<br />
<input type="submit" value="Submit" name="subButton" tabindex="50"></input>


</form>

</body>

</html>

PHP

function callNames(){
    $body;
    for($name = 1; $name <= 6; $name++){
        if($name <= 5){
        echo "Your name is " . $_POST[$name] . ".<br />";


} 

elseif($name =? ){
    ?;
    }

else {
    echo "Your out of names!";
    }
};
}

callNames();

我将elseif函数留空,因为我认为这是我的解决方案所在。换句话说,如果你为除了字段3之外的所有内容添加一个名称,它只会回应“你的名字是”4次但不会留下额外的中断。我不会用elseif来解决这个问题吗?

3 个答案:

答案 0 :(得分:0)

首先,正如Fred -ii在评论中指出的那样,在PHP字段名称中不能以数字开头,但是如果他们可以在这里就是这样做的:

function callNames(){
    $body;
    for($name = 1; $name < 6; $name++){
        if(isset($_POST[$name])){
          echo "Your name is " . $_POST[$name] . ".<br />";
        }
    }
    echo 'You are out of names!';
} 

但是,这假设后变量按顺序上升,直到没有更多名称。

如果你解释这是为了什么,也许有人可以提供一个更好的方法来解决这个问题。

P.s身体变量似乎未使用?

答案 1 :(得分:-1)

function callNames(){

if ($_POST['name'] != ""){

echo "Your name is " . $_POST[$name] . ".<br />";

}

elseif($_POST['name'] == "?"){

    echo "?";

    }

else {

    echo "Your out of names!";

    }

}

答案 2 :(得分:-1)

您是否尝试过添加查找$ _POST [$ name] length&gt;的条件? 0或那个寻找$_POST[$name] != '';

function callNames(){
    $body;
    for($name = 1; $name <= 6; $name++){
        if($name <= 5){
        if ( $_POST[$name] != '' ) {
            echo "Your name is " . $_POST[$name] . ".<br />";
        }
} 
elseif($name =? ){
    ?;
    }
else {
    echo "Your out of names!";
    }
};
}
callNames();

您甚至可以将这两个条件合并为&&