2012-01-22 2 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 블록 안의 Labels :: $ FIRSTNAMELABEL - 변경하지 않았습니다. 양식이 표시되고 페이지 소스를 덤프하면 항상 name = (공백)이됩니다. 양식이 제출 될 때 더 첫째 없습니다 - 왜

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

'는 isset'항상 false를 반환, 그래서 페이지 덤프를했고, 발견 :

나는 다음의 코드로이 발견 "이름"이라는 이름 필드는 전혀 없습니다.

<?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; 
} 
?> 

하는 이유는 '이름 ='필드는 항상 빈 : 여기 내 히어 닥에서 양식의 일부 - 이것에 대해

재미있는 것은 내가 히어 닥 안에이 양식을했고 그것을 잘 작동한다?

답변

4

한 눈에 반향/인쇄가 없습니다.

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

+1 허용되었습니다. 감사합니다. 분명히 에코에 대해 배우고 있습니다. 이 코드를보고 오늘 오랫동안 물건을 시험해 보았습니다. 그리고 그것은 나에게 일어나지 않았습니다. 나는 heredoc에서 복사 한 코드가 잘 작동하고 있다고 생각합니다. "이전에 코드가 작동 했었습니다. 다른 뭔가가 있어야합니다. " 감사. – wantTheBest

관련 문제