php ajax提交的问题

stream1990 2011-07-06 03:41:41
在DEDE上加功能,遇到几个问题,想实现的功能就是ajax post编辑器中的数据到当前页面,然后进行一些处理再返回放到编辑器中


js 代码如下

function weiyuanchuang(){
var myeditor = FCKeditorAPI.GetInstance('body');
var content = myeditor.EditorDocument.body.innerHTML;
//alert(content);
var url = "?";
content=encodeURI(content);
var postStr = "dopost=weiyuanc&content="+content;
xmlHttp = GetXmlHttpRequest();
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.onreadystatechange = replaceContent;
xmlHttp.send(postStr);
}

function replaceContent(){
if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
var response = xmlHttp.responseText;
var myeditor = FCKeditorAPI.GetInstance('body');
SetEditorContents("body",response);
}
}






用url编码方式提交的,抓包看到提交的数据也确实url编码过,然后PHP页面取值,直接echo $_POST["content"]发现当有 #

& 等一些特殊字符的时候内容就会被截断,我明明url编码过的,为什么还会截断呢?





PHP代码如下


if($dopost=='weiyuanc')
{
//echo $_REQUEST["content"]; die();
$sql = "select * from stream_weiyuanc";
$dsql->SetQuery($sql);
$dsql->Execute();
$content = stripslashes(iconv ("utf-8","GBK",urldecode($_POST["content"])));
$i=0;
$oriArray = array();
$replaceArray = array();
while($row = $dsql->GetArray()){
$oriArray[$i] = "/".$row['oriTitle']."/";
$replaceArray[$i] = $row['replaceTitle'];
$i++;
}
echo preg_replace($oriArray,$replaceArray,$content);
exit();
}




我以为是转码时候截断的,但我直接//echo $_REQUEST["content"]; die();发现这里就断了。为什么呢?

...全文
160 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
stream1990 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 stream1990 的回复:]

引用 3 楼 piaolankeke 的回复:

js中使用encodeURIComponent编码,这样组合的url才不会被#等特殊字符截断

JScript code

content=encodeURI(content);



这里编码了
encodeURI

encodeURIComponent有区别?
[/Quote]


OK,明白了,谢谢你
stream1990 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 piaolankeke 的回复:]

js中使用encodeURIComponent编码,这样组合的url才不会被#等特殊字符截断
[/Quote]

content=encodeURI(content);


这里编码了
encodeURI

encodeURIComponent有区别?
piaolankeke 2011-07-06
  • 打赏
  • 举报
回复
js中使用encodeURIComponent编码,这样组合的url才不会被#等特殊字符截断
stream1990 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 piaolankeke 的回复:]

die();发现这里就断了。

为什么不断呢?
[/Quote]

这是我调试的代码,也注释了呀!
piaolankeke 2011-07-06
  • 打赏
  • 举报
回复
die();发现这里就断了。

为什么不断呢?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧