如何用XMLHTTP的POST提交下面可写DIV中输入的数据(请写出代码):
<DIV height=100 id="txt" contentEditable=true align=left></DIV>
其中含有文本的颜色、字体、大小,以及在其中显示的图片等内容。
听说可以用隐藏域的方法实现,可是搞来搞去都搞不好,希望大虾来帮下忙啦。
先谢了。
參考答案:LZ的问题其实两个。一个是把contentEditable的DIV的内容当成表单形式提交。另一个就是xmlhttp请求了。。。。这个是典型的ajax。没什么难的。可能是习惯问题。LZ思路有些错了。其实不用管是普通的inputbox还是一个contentEditable的DIV,在xmlhttp发送请求时,是一样的意义。无非就是在发送时,前者用$("inputBox").value而后者用$("div").innerHTML,两者同样被发送出。。。第一个问题解决。第二个问题就是经典的xmlhttp了。不多说。看看代码吧。。。。随便写的,不精简也不安全。。。。。将就着看看思路就好了。--------------------<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
<html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
#txt{
border:1px solid black;
height:80px;
width:200px;
overflow:scroll;
}
</style>
<script type="text/javascript">
function buttonClick()
{
var xmlhttp;
try{
xmlhttp=new XMLHttpRequest();
}catch(e){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("post", "server.asp", true);
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlhttp.send("txt="+document.getElementById("txt").innerHTML);
xmlhttp.onreadystatechange=function(){
if (4==xmlhttp.readyState){
if (200==xmlhttp.status){
var date=xmlhttp.responseText;
document.getElementById("back").innerHTML=date
}else{
alert("error");
}
}
}
}
</script>
</head>
<body>
<DIV height=100 id="txt" contentEditable=true align=left></DIV>
<label>
<input type="button" name="Submit" value="提交" onclick="buttonClick()" />
</label>
<hr />
<div id="back">信息返回后在这里显示</div>
</body>
</html>
---------------------------------
服务器端的话。通过request.form("txt")接收发送的数据,经过处理后再用“写”出来就可以了。asp代码如下:
<%
response.write(request.form("txt") & "<br />and it be moded!")
%>
以上代码xp sp2 ie7测试通过。。。:)