【发布时间】:2011-10-14 00:28:50
【问题描述】:
我创建了我的 CMS 的一部分,它允许管理员将页面上的所有文本转换为文本区域,以便他们可以编辑内容。他们更改的所有内容都在一个 div 中,我通过 jQuery / AJAX 将 div 的内容提交给处理数据的 PHP 控制器。然而,jQuery 完美地抓取 HTML 并将其发送到 PHP 控制器,但 PHP 会删除一些内容(删除一些标签,每隔一段时间)。
例如,如果我提交
<div class="cmsedit" style="background-color:#EEE">Hello</div>
它将用这个保存/写入文件
div class="cmsedit">Hello</div> .
它删除了 div 和 b 的左括号。它不会一直这样做。如果我不包含样式标签,它通常会保留代码就好了。
这是我在 javascript 页面上使用的代码。
$('.save_page').click(function(){
updated_content = $('.content_to_be_edited').html();
edit_page = $('#edit_page_name').val();
$.post("<?=site_url('admin/update_page_data') ?>", { content:updated_content,page_name:edit_page });
});
这是 PHP 控制器页面
$page_content = $this->input->post('content');
$page_name = $this->input->post('page_name');
$filename = $_SERVER['DOCUMENT_ROOT']."/application/views/".$page_name.".php";
// SAVE NEW FILE
$file = fopen($filename, 'w') or die("Can't open file");
$filedata = htmlspecialchars_decode($page_content);
fwrite($file, $filedata);
fclose($file);
任何人都知道为什么当 PHP 处理数据时标签会被搞砸?谢谢!!
【问题讨论】:
-
您是否对 $page_content 进行了回显以确保您正确接收它?
标签: php javascript html ajax codeigniter