0

因我的愚蠢而编辑:

我有一个简单的 html 表单,带有基本的选择、文本和文本区域输入。提交后,表单会返回某些字段的空白,但不是全部。下面是表格:

<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] => wu [isUrgent] => 是 [webpageAddress] => [currentText] => 1 [newText] => [copyProofed] => 否 [creativeComplete] => 否 [jobNumber] => [phoneVerified] => 没有 [leadEmail] => [变量] => [pincodes] => 没有 [webpageAddress2] => [eblastType] => 数字 [subjectLine] => [copyApproved] => 没有 [dueDate_Month] => 1 [dueDate_Day] => 1 [dueDate_Year] => 2012 [notes] => 41 [step] => 2 [submit] => Submit )

如果我是 var_dump($_POST),我会得到:

array 'jobType' => string 'wu' (length=2) 'isUrgent' => string 'Yes' (length=3) 'webpageAddress' => string '' (length=0) 'currentText' => string '1 ' (length=1) 'newText' => string '' (length=0) 'copyProofed' => string 'No' (length=2) 'creativeComplete' => string 'No' (length=2) 'jobNumber' => string '' (length=0) 'phoneVerified' => string 'No' (length=2) 'leadEmail' => string '' (length=0) 'variables' => string '' (length=0) 'pincodes' => string 'No' (length=2) 'webpageAddress2' => string '' (length=0) 'eblastType' => string'数字'(长度=7)'subjectLine'=>字符串''(长度=0)'copyApproved'=>字符串'否'(长度=2)'dueDate_Month'=>字符串'1'(长度=1)'dueDate_Day ' => 字符串 '1' (length=1) 'dueDate_Year' => 字符串 '2012' (length=4) 'notes' => 字符串 '41' (length=2) 'step' => 字符串 '2' (长度=1) '提交' => 字符串'提交' (长度=6)notes' => string '41' (length=2) 'step' => string '2' (length=1) 'submit' => string 'Submit' (length=6)notes' => string '41' (length=2) 'step' => string '2' (length=1) 'submit' => string 'Submit' (length=6)

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

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

4

3 回答 3

1

[currentText] => 1(从 输出print_r

'currentText' => string '1' (length=1)(从 输出var_dump

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

print_r

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

然而var_dump

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

在没有print_r显示此值的地方:

[webpageAddress] =>

并将var_dump显示这个

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

于 2012-07-23T14:34:54.060 回答
0

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

于 2012-07-23T14:50:00.383 回答
0

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

也为了避免逃避每个“与\”的头痛尝试保存这样的表格

$form = <<<EOT
<form html here>
EOT;
于 2012-12-21T20:55:37.893 回答