我有一个小函数,可以从我的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来解决这个问题吗?
答案 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();
您甚至可以将这两个条件合并为&&