我对以下代码感到难过:
<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 =''是空白的。页面源中应该说name =“FirstName”。不要空白。
我试过:单引号,双引号,空格,php块周围没有空格,以及围绕Labels :: $ FIRSTNAMELABEL的php块内 - 没有变化。当显示表单并且我转储页面源时,我总是得到name =(空白)。
我用以下代码行发现了这个:
if( isset( $_POST[Labels::$FIRSTNAMELABEL])
'isset'总是返回false,所以我做了一个页面转储并找出原因 - 当提交表单时,根本没有名为“FirstName”的名字字段。
有趣的是,我在heredoc中有这个表格并且它工作正常 - 这是我的heredoc中表单的一部分:
<?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 ='字段始终为空?
答案 0 :(得分:4)
一目了然,没有回音/打印。
<b><i>First name *</b></i> : <input type="text"
name='<?php echo Labels::$FIRSTNAMELABEL ?>' /><br />