-2

以下のような HTML と PHP コードがあります。私はコード1つのファイルを持っていますhtml2word.php:

<form method="post" action="htmltortf.php">    
    <table>
        <tr>
            <td colspan="3">Convert html to doc</td>
        </tr>
        <tr>
            <td colspan="3">Choose the answer</td>
        </tr>
        <tr>
            <td><input type="radio"  name="004" value="1" <?=($_POST['004']=='1' ? 'checked="checked"' : '')?>/>1</td>
            <td><input type="radio"  name="004" value="2" <?=($_POST['004']=='2' ? 'checked="checked"' : '')?>/>2</td>
            <td><input type="radio"  name="004" value="3" <?=($_POST['004']=='3' ? 'checked="checked"' : '')?>/>3</td>
        </tr>
        <tr>
            <td colspan="3"><input type="submit" name="submit" value="submit" /></td>
        </tr>
    </table>
    <?php
        if(isset($_POST['submit']))
        {
            header("Content-type: application/vnd.ms-word");
            header("Content-Disposition: attachment;Filename=html2doc.doc");
        }
     ?>    
</form>

必要なもの:

ユーザーがラジオ ボックスをオンにすると、MS-Word に変換したときにラジオ ボックスがオンになっていることも表示されます。

問題:

Word文書に変換すると、チェックしたラジオボックスが表示されますが、エラーメッセージが表示されます:

Notice: Undefined index: 004 in C:\wamp\www\html to docv2\htmltortf.php on line 51.

これを修正するにはどうすればよいですか?

4

1 に答える 1

0

ユーザーが送信ボタンをクリックすると、フォームデータがサーバーに送信されます。これは $_POST 配列に格納されるため、このページを表示するときは、事前にデータ レシーバーをチェックする必要があります。
そのようなことを試してください(ラジオボタンのhtmlをこのコードに置き換えてください):

<td><input type="radio"  name="004" value="1" <?=((isset($_POST['004']) && $_POST['004']=='1') ? 'checked="checked"' : '')?>/>1</td>
<td><input type="radio"  name="004" value="2" <?=((isset($_POST['004']) && $_POST['004']=='2') ? 'checked="checked"' : '')?>/>2</td>
<td><input type="radio"  name="004" value="3" <?=((isset($_POST['004']) && $_POST['004']=='3') ? 'checked="checked"' : '')?>/>3</td>

完全な解決策を確認してください: http://codepad.org/QThcTGdO

于 2012-09-06T14:51:51.047 に答える