我想要一个textarea,我可以直接编辑html代码。在提交表单后,如果textarea(带有html标签)应该保存到MySQL数据库中。我使用PHP来接收日期并将其保存到数据库中。我的问题是,HTML代码没有正确发送到PHP。我没有收到HTML代码,只收到文本。我怎么能解决这个问题?
我的表格如下:
<form method="post" enctype="multipart/form-data" action="form.php">
<textarea name="html_code">
<a href="link">testlink</a>
</textarea>
<input type=submit value="submit"/>
</form>
form.php现在应该能够显示textarea的内容
echo $_POST['html_code'];
显示:testlink
我想:<a href="link">testlink</a>
答案 0 :(得分:4)
谢谢大家的回答。我发现了这个问题。这是Joomla。当我通过getVar获取字符串时,Joomla删除了HTML标记。我不得不使用掩码选项JREQUEST_ALLOWRAW来解决问题。
JRequest::getVar('html_code', '', 'post' , 'STRING', JREQUEST_ALLOWRAW);
答案 1 :(得分:1)
您是否将其回显到HTML页面?因为代码将被解析为实际链接。
查看输出页面的来源。
答案 2 :(得分:1)
您使用的编码类型错误。
而不是“multipart / form-data”,它应该是“text / plain”。
您不必像Doug所说的那样对数据进行编码;但是当你提交表格时它会被编码,所以在使用之前不要忘记解码。
答案 3 :(得分:1)
您的表格应该是:
<form method="post" enctype="multipart/form-data" action="form.php">
<textarea name="html_code">
<a href="link">testlink</a>
</textarea>
<input type=submit value="submit"/>
</form>
(不,它没有搞砸。他们被称为HTML entities)
您可以在PHP中使用htmlentities()来实现这一目标。