这可能是一个非常简单和愚蠢的问题,但它很简单,我不知道自己做错了什么。
我试图在保留格式(分隔线,空格等)的同时获取textarea的内容。但是当我试图发布表单时,没有找到html标签。我得到的只是纯文本。
当我输入textarea时这样:
first line
after 3 br
我希望echo $foo;
的结果是这样的:
first line
<br/>gt;
<br/>gt;
<br/>gt;
after 3 br
但相反,echo $foo;
的结果仍然是这样的:
first line
after 3 br
这是display.php
:
<form method="post" action="">
<textarea name="foo"><?php echo set_value('foo'); ?></textarea>
<br/>
<input type="submit" name="submit" value="Submit"/>
</form>
这是控制器:
function form_foo()
{
$foo = $this->input->post('foo');
if (get_magic_quotes_gpc())
{
$foo = stripslashes($foo);
}
$foo = htmlentities($foo);
echo $foo;
$this->load->view('display', $this->data);
}
我做错了什么?
P.S:我使用的是codeigniter 3.0和PHP 5.6.15
答案 0 :(得分:0)
试试这段代码 -
function form_foo()
{
$foo = $this->input->post('foo');
if (get_magic_quotes_gpc())
{
$foo = stripslashes($foo);
}
//$foo = htmlentities($foo);
echo $foo;
$this->load->view('display', $this->data);
}
答案 1 :(得分:0)
为什么不使用contenteditable
?
<div contenteditable="true"></div>
这可以将<div>
转换为可编辑区域,但没有样式。你需要另外设计它们。
这是我的CSS解决方案
[contentEditable=true] {
white-space: pre;
background-color: #FFFFFF;
min-height: 6em;
max-height: 12em;
overflow-y: scroll;
outline: none !important;
border-radius: 4px;
padding: 4px;
}
小心处理HTML标记。
参见参考contenteditable。