做了一个简单的ajax触发,前台点击<a>(空连接)标签触发js时间,调用后台php功能页面,输出内容是整段的<table>代码,到前台的一个<div>中,但是实际做的时候,输出的内容总是一闪而过(看到了输出的东西,但是内容出现就立即消失了),在js中做了个断点,可以看到已经输出了相应的内容,但是前台<div>中总是无法保留,郁闷死了。
求高人指教!!!JS代码:
var xmlhttp;
function xmlhttprequest(){
if(window.ActiveXObject)
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
if(!xmlhttp)
{window.alert("信息传输失败"); return false;}
else
{return true;}
}
function sendshare(temp){
if(xmlhttprequest())
{
xmlhttp.onreadystatechange=status_check;
xmlhttp.open("POST","browse.php",false);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("share="+temp);
}
}
function status_check(){
if(4==xmlhttp.readyState)
{
if(200==xmlhttp.status || 0==xmlhttp.status)
{
var content=xmlhttp.responseText;
window.alert(content);
document.getElementById("_middle").innerHTML=content;
}
}
}
HTML代码片段是:
<div id="left">
<ul>
<li><a href="" onclick="sendshare(1)">我的文件</a></li>
后台的php页面代码太多,但是只有一个功能,就是输出相关的内容,
我的后台页面输出的是一段整段的<table>代码,用于嵌入到前端的<div>中。
求高人指教!!!JS代码:
var xmlhttp;
function xmlhttprequest(){
if(window.ActiveXObject)
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
if(!xmlhttp)
{window.alert("信息传输失败"); return false;}
else
{return true;}
}
function sendshare(temp){
if(xmlhttprequest())
{
xmlhttp.onreadystatechange=status_check;
xmlhttp.open("POST","browse.php",false);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("share="+temp);
}
}
function status_check(){
if(4==xmlhttp.readyState)
{
if(200==xmlhttp.status || 0==xmlhttp.status)
{
var content=xmlhttp.responseText;
window.alert(content);
document.getElementById("_middle").innerHTML=content;
}
}
}
HTML代码片段是:
<div id="left">
<ul>
<li><a href="" onclick="sendshare(1)">我的文件</a></li>
后台的php页面代码太多,但是只有一个功能,就是输出相关的内容,
我的后台页面输出的是一段整段的<table>代码,用于嵌入到前端的<div>中。
用firefox实验,发现东西在输出的时候,好像页面还是处于请求状态,
也就是说,内容输出的时候,浏览器地址栏显示的是正在请求的黯红色叉,
等到内容输出之后,暗红色叉消失,随之的内容也消失了,就像页面刷新了一样。
不知道为什么,
我仔细看了下,输出的内容就是一个完整的<table>........</table>
之外没什么东西,
求解??:
先把前台与后台的最简化,只留下ajax部分,browse.php只用一句 echo 'ok'; 看看能否正常输出,
然后逐渐加代码加功能。方法就是这样,需要耐心调试。
简单 用jquery.ajax 返回内容直接修改id 内容.
如果为空,肯定是现在的网页没有加载内容。
今用Ie是代码的时候,提示我返回的<table>...</table>代码有问题,
代码错误会不会i导致页面的错误呢?
但是,后来改过来了,还是老样子,
但是不知道改完了没。
纠结,唉。
===============================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest()
{
if (window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
//new一个ActiveXObject类.
}
else if (window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
function startRequest()
{
createXMLHttpRequest();
try {
var url = "save.php";
//声明提交对象
var f = document.user_info;
var usertext = f.com.value;
var postStr = "user="+usertext;
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("POST", url, true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send(postStr);
}
catch (exception)
{
alert("您要访问的资源不存在!");
}
}function handleStateChange()
{
if (xmlHttp.readyState == 4)
{
if (xmlHttp.status == 200 || xmlHttp.status == 0)
{
document.getElementById("msg").innerHTML = xmlHttp.responseText;
}
}
}
</script>
</head>
<body>
<form name="user_info" method="post" action="">
<textarea cols="50" rows="8" name="com" style=" border:#CCCCCC 1px solid;"></textarea>
<p>
<input type="button" value="提交表单" onclick="startRequest()">
</form>
<div id="msg"></div>
</body>
</html>============================================================================
save.php
<?php
$text=$_POST['user'];
echo $text;
?>============================================================================