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 以外のすべてに名前を入力すると、"Your name is " が 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!';
} 

ただし、これは、名前がなくなるまでポスト変数が順次増加することを前提としています。

これが何のためにあるのかを説明すれば、誰かが一緒に問題に取り組むためのより良い方法を提供できるかもしれません.

Ps body 変数は未使用のようですか?

于 2013-09-25T16:44:54.893 に答える
-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 に答える
-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();

2 つの条件を 1 つにマージすることもできます&&

于 2013-09-25T16:42:07.083 に答える