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] => [variables] => [pincodes] => いいえ [webpageAddress2] => [eblastType] => デジタル [subjectLine] => [copyApproved] => いいえ [dueDate_Month] => 1 [dueDate_Day] => 1 [期日_年] => 2012 [メモ] => 41 [ステップ] => 2 [送信] => 送信 )

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 'Digital' (length=7) 'subjectLine' => string '' (length=0) 'copyApproved' => string 'No' (length=2) 'dueDate_Month' => string '1' (length=1) 'dueDate_Day' => string '1' (length=1) 'dueDate_Year' => string '2012' (length=4) 'notes' => string '41' (length=2) 'step' => string '2' (length=1) 'submit' => string 'Submit' (length=6)

送信する前にデータを入力したにもかかわらず、両方のタイプの $_POST ダンプで webpageAddress と newText に空の値が表示されます。入力したデータが $_POST ダンプで利用できない理由を知っている人はいますか?

ここで何が起こっているか知っている人はいますか?

4

3 に答える 3

1

[currentText] => 1( からの出力print_r)

'currentText' => string '1' (length=1)( からの出力var_dump)

は同じです....つまり、1..の値var_dumpはフィールドのタイプを示します(stringこの場合)、そうでprint_rはありません...マニュアルから:

print_r

人間が読める方法で変数に関する情報を表示します

一方var_dump

タイプと値を含む 1 つ以上の式に関する構造化された情報を表示します。配列とオブジェクトは、構造を示すためにインデントされた値で再帰的に探索されます。

print_rdisplay this で値がない場合:

[webpageAddress] =>

これをvar_dump表示します

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

于 2012-07-23T14:34:54.060 に答える
0

問題は、テーブル内のテーブルです。テーブルを使用してフォームを作成することはありません。CSS でサイズと位置を調整する div またはリストは、管理とデバッグがはるかに簡単でクリーンなシステムです。

また、すべての " with \" をエスケープするという頭痛の種を避けるために、次のようにフォームを保存してみてください

$form = <<<EOT
<form html here>
EOT;
于 2012-12-21T20:55:37.893 に答える
0

出力の一部の変数は、html コード (webpageAddress2、eblastType、subjectLine) に表示されません。「webpageAddress」の場合、エスケープ文字を削除してみましたか? 引用符 ( " ) からエスケープ ( \ ) を削除するとどうなりますか?

于 2012-07-23T14:50:00.383 に答える