$ _POST变量只返回某些字段的值,但不是全部

时间:2012-07-23 14:31:59

标签: html forms post textinput

为我的愚蠢而编辑:

我有一个简单的html表单,带有基本的select,text和textarea输入。提交后,表单返回某些字段的空白,但不是全部。以下是表格:

<form action='?action=createDigitalJob' method='post'>
    <table width='100%'>
        <tr>
            <th align='left'>Job Type</th>
            <td>
                <select id='jobTypeID' name='jobType' style='width:250px;' onchange=\"digitalJobToggle('jobTypeID')\">
                    <option value='0'>Count Type&nbsp;&nbsp;</option>
                    <option value='wu'>Web Update&nbsp;&nbsp;</option>
                    <option value='purl'>PURL&nbsp;&nbsp;</option>
                    <option value='furl'>FURL&nbsp;&nbsp;</option>
                    <option value='gurl'>GURL&nbsp;&nbsp;</option>
                    <option value='domain'>Domain Purchase&nbsp;&nbsp;</option>
                    <option value='eblast'>E-Blast&nbsp;&nbsp;</option>
                    <option value='tdm'>TDM&nbsp;&nbsp;</option>
                    <option value='crm'>ORM&nbsp;&nbsp;</option>
                </select>
            </td>
        </tr>
        <tr>
            <th align='left'>Urgent</th>
            <td>
                <select name='isUrgent'>
                    <option value='No'>No&nbsp;&nbsp;</option>
                    <option value='Yes'>Yes&nbsp;&nbsp;</option>
                </select>
            </td>
        </tr>
        <tr id='wu' style='display:none'>
            <td colspan='2'>
                <table class='plain'>
                    <tr>
                        <td>Webpage Address</td>
                        <td><input type=\"text\" name=\"webpageAddress\" /></td>
                    </tr>
                    <tr>
                        <td valign='top'>Current Text</td>
                        <td><textarea name='currentText' style='width:500px; height:250px;' placeholder='Current Text' ></textarea></td>
                    </tr>
                    <tr>
                        <td valign='top'>New Text</td>
                        <td><textarea name='newText' style='width:500px; height:250px;' placeholder='New Text Text' ></textarea></td>
                    </tr>
                    <tr>
                        <td>Copy Proofed?</td>
                        <td>
                            <select name='copyProofed'>
                                <option value='No'>No&nbsp;&nbsp;</option>
                                <option value='Yes'>Yes&nbsp;&nbsp;</option>
                            </select>
                        </td>
                    </tr>
                </table>
            </td>
        </tr>
        <tr id='submitRow' style='display:none'>
            <td colspan='2'>
                <input type='hidden' name='step' value='2' />
                <input type='submit' name='submit' value='Submit' />&nbsp;&nbsp;
                <input type='button' value='Cancel' onclick='javascript:history.go(-1);' />
            </td>
        </tr>
    </table>
</form>

提交表单后,我可以执行print_r($ _ POST)并收到以下内容:

  

数组([jobType] =&gt; wu [isUrgent] =&gt;是[网页地址] =&gt; [currentText] =&gt; 1 [newText] =&gt; [copyProofed] =&gt;否[creativeComplete] =&gt ;否[jobNumber] =&gt; [phoneVerified] =&gt;否[leadEmail] =&gt; [variables] =&gt; [pincodes] =&gt;否[网页地址2] =&gt; [eblastType] =&gt;数字[subjectLine] =&gt; [copyApproved] =&gt;否[dueDate_Month] =&gt; 1 [dueDate_Day] =&gt; 1 [dueDate_Year] =&gt; 2012 [notes] =&gt; 41 [step] =&gt; 2 [submit] =&gt ;提交)

如果我是一个var_dump($ _ POST),我明白了:

  

阵列     'jobType'=&gt;字符串'wu'(长度= 2)     'isUrgent'=&gt;字符串'是'(长度= 3)     'webpageAddress'=&gt;字符串''(长度= 0)     'currentText'=&gt;字符串'1'(长度= 1)     'newText'=&gt;字符串''(长度= 0)     'copyProofed'=&gt;字符串'否'(长度= 2)     'creativeComplete'=&gt;字符串'否'(长度= 2)     'jobNumber'=&gt;字符串''(长度= 0)     'phoneVerified'=&gt;字符串'否'(长度= 2)     'leadEmail'=&gt;字符串''(长度= 0)     'variables'=&gt;字符串''(长度= 0)     'pincodes'=&gt;字符串'否'(长度= 2)     'webpageAddress2'=&gt;字符串''(长度= 0)     'eblastType'=&gt;字符串'Digital'(长度= 7)     'subjectLine'=&gt;字符串''(长度= 0)     'copyApproved'=&gt;字符串'否'(长度= 2)     'dueDate_Month'=&gt;字符串'1'(长度= 1)     'dueDate_Day'=&gt;字符串'1'(长度= 1)     'dueDate_Year'=&gt;字符串'2012'(长度= 4)     'notes'=&gt;字符串'41'(长度= 2)     'step'=&gt;字符串'2'(长度= 1)     'submit'=&gt;字符串'提交'(长度= 6)

两种类型的$ _POST转储都显示为webpageAddress和newText的空值,即使我在点击提交之前为它们输入了数据。有人知道为什么我输入的数据在$ _POST转储中不可用吗?

有人知道这里发生了什么吗?

3 个答案:

答案 0 :(得分:1)

[currentText] => 1(来自print_r的输出)

'currentText' => string '1' (length=1)(来自var_dump的输出)

是相同的....即值1 .. var_dump显示字段的类型(在这种情况下为string),其中print_r为不是......来自手册:

print_r

  

以人类可读的方式显示有关变量的信息

其中var_dump

  

显示有关包含其类型和值的一个或多个表达式的结构化信息。递归地探索数组和对象,并使用缩进的值来显示结构。

如果没有值print_r,则显示此内容:

[webpageAddress] =>

var_dump将显示此

'webpageAddress' => string '' (length=0)

答案 1 :(得分:0)

输出中的某些变量不会出现在html代码中(webpageAddress2,eblastType,subjectLine)。在“webpageAddress”的情况下,你尝试删除转义字符?如果从引号(“)中删除转义符(\)会发生什么?

答案 2 :(得分:0)

问题是表格内的表格。我永远不会使用表格来构建表单。使用CSS调整大小和位置的Div或列表是一个更容易和更清晰的系统来管理和调试。

另外为了省去逃避每个“with”的麻烦,尝试保存这样的表格

$form = <<<EOT
<form html here>
EOT;