PHP---ajax传递POST值(包含html标记)到提交页面数据丢失或乱码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP---ajax传递POST值(包含html标记)到提交页面数据丢失或乱码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2395字,纯文字阅读大概需要4分钟。
内容图文
问题??通过获取文本编辑器中的内容(一个html文本),然后采用ajax通过POST将文本内容传递到后台,保存为xxx.html文件,但是到浏览器中去打开这个文件会出现数据丢失或者乱码。
原因
??这是因为文本中带了html标记,在用POST传递值的时候,值的内容中带了‘&’等一些字符会影响变量的值的提取,导致乱码或者丢失数据。
解决办法
??将待传递的html文本内容进行编码,然后传递过去。再通过浏览器的自动解码即可。
编码函数
??encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ’ ( ) 。
其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码,其他则可以使用encodeURI(URIstring)函数来编码。
var content = UM.getEditor('myEditor').getAllHtml();
/*对待传递的值的内容进行编码*/var htmlcontent = encodeURIComponent(content);
alert(htmlcontent);
var postStr = 'news_title=' + news_title +'&htmlc/span> + htmlcontent + '&sid='+Math.random();
alert(postStr);
ajax("../news_submit_hand.php",postStr,function(result){if(result == 'submit_success'){
alert("新闻提交成功!请通过右上角的关闭按钮来关闭编辑器。");
}
else {
alert("新闻提交出错!");
}
});
编码之后还需要解决的问题
??新闻提交中传进了一个标题,要将标题插入到html文本内容的正文之前,则需要在标记的后面插入标题。此时编码后变为了%3Cbody%3E。则有解决思路:
??首先通过%3Cbody%3E字符串从指定位置处将原字符串分割成两个字符串,然后再将分割的前半部分字符串+待插入的字符串+后半部分字符串,形成新的字符串,这样就实现了功能;
??代码实现:
functionstr_insert($str, $i, $substr)
{for($j=0; $j<$i; $j++){
$startstr .= $str[$j];
}
for ($j; $j$str); $j++){
$laststr .= $str[$j];
}
$str = ($startstr . $substr . $laststr);
return$str;
}
$myfile = fopen($news_path, "w");
if('FALSE' == $myfile)echo'error';
/*处理新闻标题等信息*///待插入的html代码$insert_html = ""
. $news_title . "发布者:admin 发布日期:". date("Y-m-d H:i:s",$timestamp) ."
";
$first_pos = stripos($htmlcontent, "%3Cbody%20%3E");
$first_pos += 13;
$content =str_insert($htmlcontent,$first_pos,$insert_html);
fwrite($myfile, $content);
fclose($myfile);
版权声明:本文为博主[原创]文章,未经博主允许可以转载,注明博客出处:[http://blog.csdn.net/FreeApe]
以上就介绍了PHP---ajax传递POST值(包含html标记)到提交页面数据丢失或乱码,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
内容总结
以上是互联网集市为您收集整理的PHP---ajax传递POST值(包含html标记)到提交页面数据丢失或乱码全部内容,希望文章能够帮你解决PHP---ajax传递POST值(包含html标记)到提交页面数据丢失或乱码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。