我使用CodeIgniter并在编辑窗体上从数据库中拉入数据。有时这些数据包含撇号,&符号等。CodeIgniter窗体帮助文本输入字段导致html解析
我该如何获取CI才能解析并将其更改为HTML版本,以便最终用户可以对其进行编辑。
这是编辑表单的图像,这个文本字段有数据从数据库中拉入并填充到输入文本字段中。数据不包含任何特殊字符,如下图所示。
这里的数据是如何看在表中的截图,记下我只能从最右侧一列拉。不是第4列:
正如你可以告诉数据不被存储为html转换,但CI仍然在转换它。
这里是上面的文本字段中的一个片段:
<?php
/**
* Form Field attribute settings
* @author Mike DeVita
*/
$companyname = array(
'name' => 'companyname',
'placeholder' => 'Enter Your Companies Name',
'id' => 'companyname',
'value' => set_value('', $points['pointFields']['companyname']->uf_fieldvalue),
'maxlength' => 80,
'size' => 30
);
<div class="_100">
<p><?php echo form_label('Company Name', $companyname['id']); ?><?php echo form_input($companyname); ?></p>
<?php echo form_error($companyname['id']); ?>
</div>
这里是插入到数据库中的一个片段:
function addUserFieldHtml($compiledHtml){
foreach ($compiledHtml as $cHK => $cHV){
$data = array (
'pointid' => $cHV['pointId'],
'timestamp' => time(),
'html' => $cHV['html'],
'fieldid' => $cHV['fieldId'],
'fieldvalue' => $cHV['fieldValue']
);
$this->db->insert('userfields', $data);
}
}#end addUserFieldHtml() function
感谢
我不太清楚你是如何生成表单元素,但我想你有一个'prep_for_form'过滤器运行?在任何情况下,你最好的选择可能是在数据被使用后对数据使用'html_entity_decode'(http://www.php.net/manual/en/function.html-entity-decode.php)或类似的解码函数从数据库中检索,但编辑器正在呈现之前。 – rjz 2012-04-15 03:39:01
我们可以看到您的实际代码吗? *您如何输出表单输入? – 2012-04-15 04:26:10
@rjz我想你的意思是htmlspecialchars_decode()? – Philip 2012-04-15 06:00:40