0

我有一个小函数,它从我的 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 来解决这个问题吗?

4

3 回答 3

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!';
} 

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

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

ps body 变量似乎未使用?

于 2013-09-25T16:44:54.893 回答
-1

您是否尝试过添加查找 $_POST[$name] length> 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();

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

于 2013-09-25T16:42:07.083 回答
-1
function callNames(){

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

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

}

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

    echo "?";

    }

else {

    echo "Your out of names!";

    }

}
于 2013-09-25T16:39:24.603 回答