转换为Ms word时隐藏TextArea

时间:2012-09-11 03:51:23

标签: php jquery css jquery-ui css3

假设我有以下PHP代码:

<form method="post" action="htmltortf.php">
<table>
    <tr>
            <td>Candidate Name:</td>
                <td colspan="3"><textarea cols="40" rows="10" name="textArea"><?php echo $var = isset($_POST['textArea']) ? $_POST['textArea'] : ''; ?></textarea></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");
        }
?>

我需要什么:

我希望当用户点击按钮提交时,它会生成Ms字,但对于textArea我不希望它显示它的样式,如border或...我只想显示的值it.eg:This is the textArea in the Ms word file

问题:

当我转换它时,它仍然显示textArea的样式,如border和scroll ...

我不知道如何解决这个问题?有人请帮助我,

感谢。

1 个答案:

答案 0 :(得分:0)

虽然您没有创建有效的Word(.doc)文档 - 但在下载时它仍然可以作为普通的Word文件使用。

解决问题的方法:

<form method="post" action="htmltortf.php">
<table>
    <tr>
         <td>Candidate Name:</td>
         <td colspan="3">
<?php if(isset($_POST['submit'])): ?>
<?php echo $_POST['textArea']; // echo just the posted value ?>
<?php else: // or show textarea field ?>
             <textarea cols="40" rows="10" name="textArea"><?php echo $var = isset($_POST['textArea']) ? $_POST['textArea'] : ''; ?></textarea>
<?php endif ?>
        </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");
}
?>

我假设您知道用户能够在textarea中发布HTML代码,这可能会导致DOC输出格式错误,因此您应该在strip_tags()之前使用htmlspecialchars()$_POST['textArea'],然后再回复它