2012-01-22 3 views
1

私は困惑していますが動作していない:PHPクラスの静的メンバは、次のコードで

<b><i>First name *</b></i> : <input type="text" 
        name='<?php Labels::$FIRSTNAMELABEL ?>' /><br /> 

この「姓」欄には、私のページ上のフォームにいくつかの入力の一つです。 ラベル:$ FIRSTNAMELABELはクラス定義で "FirstName"に設定されています。フォームは、私はページのソースをダンプし、私のブラウザに表示され、ここにいたとき、私は何を得る

class Labels { 
     static public $FIRSTNAMELABEL = "FirstName"; 
     // other static class members here for last name, phone #, etc. 
     } 

:ここ

は、クラス定義である

<form action="AddPerson.php" method="post"> 
<b><i>First name *</b></i> : <input type="text" 
        name='' /><br /> 

あなたはその名前に気づくでしょう=」 '空白です。 とする必要があります。ページソースにname = "FirstName"と言ってください。空白ではありません。

私は試してみました:一重引用符、二重引用符、スペース、PHPブロックの周りの空白、およびラベルの周りのphpブロックの内側:$ FIRSTNAMELABEL - 変更なし。フォームが表示され、ページソースをダンプすると、私は常にname =(空白)を取得します。

私は次のコード行でこれを発見しました:「ISSET」は常にfalseを返しますので、私は、ページのダンプを行なったし、その理由が分かった

if(isset($_POST[Labels::$FIRSTNAMELABEL]) 

- フォームが送信されたときに何も最初はありません"FirstName"という名前のフィールドはまったくありません。

<?php 
    // this was successfully displaying a 'name=' field on the form set to the 
    // static class label called Labels::$FIRSTNAMELABEL -- ie. the 'name' field 
    // in the page source was name="FirstName" 
function showAddContactForm() 
{ 
    $firstNameLabel = Labels::$FIRSTNAMELABEL; 
    // other field names not shown..... 

    echo <<<_END 
     <form action="AddContact.php" method="post"> 
     <b><i>First name *</b></i> : <input type="text" name=$firstNameLabel /><br /> 
     // other fields on the form not shown.. 
     </form> 
_END; 
} 
?> 

なぜ私の「name =」フィールドは常に空白です:?ここに私のヒアドキュメントのフォームの一部だ - これについて

おかしい事は、私がヒアドキュメント内でこのフォームを持っていたし、それがうまく働いた、ありますか

答えて

4

一見、エコー/プリントはありません。

<b><i>First name *</b></i> : <input type="text" 
name='<?php echo Labels::$FIRSTNAMELABEL ?>' /><br /> 
+0

+1ありがとうございました。私はまだエコーについて学んでいます、明らかに。このコードを見て、今日は長い間試してみて、それをエコーするのは私には起こりませんでした。私はheredocからコピーしたコードがうまく機能していたと思います。他の何かでなければなりません。 "ありがとう。 – wantTheBest

関連する問題