小弟用CKEDITOR生成了一些纯html代码<p style="text-align: center; ">
1."我"</p>
<p>
<strong><em><u>2."爱"</u></em></strong></p>
<p>
<span style="color:#ff0000;"><strike><u><em><strong><span style="font-size:20px;"><span style="font-family:trebuchet ms,helvetica,sans-serif;"><span style="background-color:#dda0dd;">3."你"</span></span></span></strong></em></u></strike></span></p>
并成功赋值给了一个变量zt_text,这个变量是javascript的,不是php的哦!我想用ajax把zt_text给传到后台可是我只能得到 <p style=因为后面有一个双引号有没有什么办法可以不用替换任何字符把html代码原模原样给保存到mysql里呢?保存好了后又怎么样用php给取出来,显示在页面上呢?
1."我"</p>
<p>
<strong><em><u>2."爱"</u></em></strong></p>
<p>
<span style="color:#ff0000;"><strike><u><em><strong><span style="font-size:20px;"><span style="font-family:trebuchet ms,helvetica,sans-serif;"><span style="background-color:#dda0dd;">3."你"</span></span></span></strong></em></u></strike></span></p>
并成功赋值给了一个变量zt_text,这个变量是javascript的,不是php的哦!我想用ajax把zt_text给传到后台可是我只能得到 <p style=因为后面有一个双引号有没有什么办法可以不用替换任何字符把html代码原模原样给保存到mysql里呢?保存好了后又怎么样用php给取出来,显示在页面上呢?
是这个
xmlHttp.open("get",url,false)应该说是get的吧.后台php这样接收的
$ZT_Text=isset($_REQUEST['ZT_Text']) ? $_REQUEST['ZT_Text']:'';
xmlHttp.open('get',url,false)
是强了一点,不过
我也还是只得到了一点点代码<p style="text-align: center; ">1.后面的这些
"我"</p>
<p>
<strong><em><u>2."爱"</u></em></strong></p>
<p>
<span style="color:#ff0000;"><strike><u><em><strong><span style="font-size:20px;"><span style="font-family:trebuchet ms,helvetica,sans-serif;"><span style="background-color:#dda0dd;">3."你"</span></span></span></strong></em></u></strike></span></p>
就都没上传到哦.
INSERT的时候使用mysql_escape_string()函数转义一下。
1."我"</p>
<p>
<strong><em><u>2."爱"</u></em></strong></p>
<p>
<span style="color:#ff0000;"><strike><u><em><strong><span style="font-size:20px;"><span style="font-family:trebuchet ms,helvetica,sans-serif;"><span style="background-color:#dda0dd;">3."你"</span></span></span></strong></em></u></strike></span></p>
这一连串的完整代码跟在后面这说明了在提交前是没问题的只是php在接收的时候从第一个 " 出现的地方给截断了我把 " 替换成 <双引号>双可以多传那么一点点内容到mysql但遇到 # 的时候又不行了,所以我想应该是可以有办法把完整代码给保存到mysql的只是现在后台接值有问题
//http.setRequestHeader("Content-type","application/x-www-form-urlencoded");
//http.setRequestHeader("Content-length",params.length);
//http.setRequestHeader("Connection","close");都运行不了不把字符串附到url上
又如何把字符串传给后台呢?
http://bbs.chinaunix.net/thread-907021-1-1.html但是我看不懂他的
query_string
$get1=explode('&',$_SERVER["QUERY_STRING"]);
reset($get1);
while(list($key,$value)=each($get1))
{
$get2=explode('=',$value);
$get[$get2[0]]=$get2[1];
}
debug($get);
xmlHttp.open('post',url,true)
xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlHttp.send(zt_text); //zt_text=你的html代码。php端:
$zt_text=$_PSOT['zt_text'];这样都试过了吗?
function SendMsg(c1,c2){ //发送函数
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
//---------------------------------------------------------------------------
var url="HouTai.php"+"?go1="+c1;
url=url+
"&MB_Id="+MB_Id+
"&MK_Id="+MK_Id+
"&ZT_Id="+ZT_Id+
"&ZT_Type="+ZT_Type+
"&ZT_Page="+ZT_Page+
"&ZT_PaiXu="+ZT_PaiXu+
"&ZT_Title="+ZT_Title+
"&TZ_Page="+TZ_Page+
"&User_Name="+User_Name+
"&User_MiMa="+User_MiMa+
"&User_Id="+User_Id+
"&DengLu_Type="+DengLu_Type+
"&DiZhi="+DiZhi+
"&TZ_Id="+TZ_Id+
"&TZ_Text="+TZ_Text+
"&ZT_Text="+ZT_Text;
//alert(url);
//if(c1=="把主题内容写入数据库"){alert(ZT_Text);}
//url=url+"&sid="+Math.random()
Td_Id=c2;
//xmlHttp.open("post",url,false)
xmlHttp.open("post",url,false);
xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlHttp.onreadystatechange=function()
//---------------------------------------------------------------------------
{
//alert("["+xmlHttp.responseText+"]")
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{//页面完成
switch (tBack_Num)
{//判断回调函数要执行怎么样的操作
case 0://正常的在指定的Id_Td区域显示出xmlHttp.responseText
document.getElementById(Td_Id).innerHTML=xmlHttp.responseText;
break;//正常的在指定的Id_Td区域显示出xmlHttp.responseText
case 1: //用户登录时的判断
//alert("["+xmlHttp.responseText+"]")
tBack_Num=0;
switch (xmlHttp.responseText){
case "用户名不存在":
alert("用户名不存在!");
document.all('IUserName').focus();
break;//退出函数
case "密码错误":
alert("密码错误!");
document.all('IUserMiMa').focus();
break;//退出函数]
case "密码正确":
//alert("密码正确!")
tBack_Num=2;
SendMsg("传用户的Id给User_Id","Td_DengLu");
break;//退出函数
}
break;//用户登录时的判断
case 2://接收成功登录的用户的Id.///
User_Id=xmlHttp.responseText
//alert("["+User_Id+"]")
tBack_Num=0
DengLu_Type=1
SendMsg("加载登录模块","Td_DengLu")
break;//接收成功登录的用户的Id.
case 3: //接收主题Id
//alert("发表成功")
tBack_Num=0;//正常的显示返回的内容.
ZT_Id=xmlHttp.responseText;
//alert("["+xmlHttp.responseText+"]")
tDo("加载帖子列表");
break;////接收主题Id
case 4:
//alert("["+xmlHttp.responseText+"]")
//成功把数据写入数据库后,把提交的帖子的Id传回来.
document.all('I_TZText').value=""//帖子已经成功提交并写入了数据库,输入框中的内容已经不再需要了.清空
tBack_Num=0
TZ_Id=xmlHttp.responseText
SendMsg("加载刚提交的回复","Td_ShowFBTZ2");//加载刚提交的回复
}//判断回调函数要执行怎么样的操作
} //页面完成
}
//---------------------------------------------------------------------------
xmlHttp.send(null);
}//发送函数
而我用下面这个页面又可以得到差不多的效果
只是在双引号前面多了一个 \
<?
header("Content-type: text/html;charset=GBK");
$tbutton=isset($_REQUEST['button1']) ? $_REQUEST['button1']:'';
$ttext=isset($_REQUEST['text1']) ? $_REQUEST['text1']:'';
echo $tbutton;
echo $ttext;
?><form action="kankan.php" method="get">
<input type="submit" name="button1" type="button" value="我爱你" /><textarea name="text1" cols="50" rows="30">
<p style="text-align: center; ">
1."我"</p>
<p>
<strong><em><u>2."爱"</u></em></strong></p>
<p>
<span style="color:#ff0000;"><strike><u><em><strong><span style="font-size:20px;"><span style="font-family:trebuchet ms,helvetica,sans-serif;"><span style="background-color:#dda0dd;">3."你"</span></span></span></strong></em></u></strike></span></p></textarea>
</form>
<p style="text-align: center; ">
1."我"</p>
<p>
<strong><em><u>2."爱"</u></em></strong></p>
<p>
<span style="color:#ff0000;"><strike><u><em><strong><span style="font-size:20px;"><span style="font-family:trebuchet ms,helvetica,sans-serif;"><span style="background-color:#dda0dd;">3."你"</span></span></span></strong></em></u></strike></span></p>
//---------------------------------------------------------------------------
{
//alert("["+xmlHttp.responseText+"]")
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{//页面完成
switch (tBack_Num)
{//判断回调函数要执行怎么样的操作
case 0://正常的在指定的Id_Td区域显示出xmlHttp.responseText
document.getElementById(Td_Id).innerHTML=xmlHttp.responseText;
break;//正常的在指定的Id_Td区域显示出xmlHttp.responseText
case 1: //用户登录时的判断
//alert("["+xmlHttp.responseText+"]")
tBack_Num=0;
switch (xmlHttp.responseText){
case "用户名不存在":
alert("用户名不存在!");
document.all('IUserName').focus();
break;//退出函数
case "密码错误":
alert("密码错误!");
document.all('IUserMiMa').focus();
break;//退出函数]
case "密码正确":
//alert("密码正确!")
tBack_Num=2;
SendMsg("传用户的Id给User_Id","Td_DengLu");
break;//退出函数
}
break;//用户登录时的判断
case 2://接收成功登录的用户的Id.///
User_Id=xmlHttp.responseText
//alert("["+User_Id+"]")
tBack_Num=0
DengLu_Type=1
SendMsg("加载登录模块","Td_DengLu")
break;//接收成功登录的用户的Id.
case 3: //接收主题Id
//alert("发表成功")
tBack_Num=0;//正常的显示返回的内容.
ZT_Id=xmlHttp.responseText;
//alert("["+xmlHttp.responseText+"]")
tDo("加载帖子列表");
break;////接收主题Id
case 4:
//alert("["+xmlHttp.responseText+"]")
//成功把数据写入数据库后,把提交的帖子的Id传回来.
document.all('I_TZText').value=""//帖子已经成功提交并写入了数据库,输入框中的内容已经不再需要了.清空
tBack_Num=0
TZ_Id=xmlHttp.responseText
SendMsg("加载刚提交的回复","Td_ShowFBTZ2");//加载刚提交的回复
case 5:
alert("["+xmlHttp.responseText+"]")
}//判断回调函数要执行怎么样的操作
} //页面完成
}
//---------------------------------------------------------------------------
ZT_Text=ZT_Text.replace(/'/g, "<单引号2>");
ZT_Text=ZT_Text.replace(/"/g, "<双引号>");
ZT_Text=ZT_Text.replace(/"/g, "<双引号>");
ZT_Text=ZT_Text.replace(/ /g, "<空格>");
ZT_Text=ZT_Text.replace(/:/g, "<冒号>");
ZT_Text=ZT_Text.replace(/;/g, "<分号>");
ZT_Text=ZT_Text.replace(/#/g, "<井号>");
$ZT_Text2=str_replace('<单引号2>',"'",$ZT_Text2);
$ZT_Text2=str_replace('\<双引号>',chr(39),$ZT_Text2);
$ZT_Text2=str_replace('<双引号>',chr(39),$ZT_Text2);
$ZT_Text2=str_replace('<空格>',chr(32),$ZT_Text2);
$ZT_Text2=str_replace('<冒号>',":",$ZT_Text2);
$ZT_Text2=str_replace('<分号>',";",$ZT_Text2);
$ZT_Text2=str_replace('<井号>',"#",$ZT_Text2);
echo $ZT_Text2;闷