【发布时间】:2013-07-19 23:15:51
【问题描述】:
现在我得到了两页 HTML 页面,其中包含 Ajax 刷新 div 标记代码并使用 $_POST 从另一个页面发布数据,第二页是从 mysql 表中选择数据的 PHP 页面,所以让我们看看我使用的代码使用 AJAX 重新加载 div 标签:
function Ajax(){
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("No AJAX!?");
return false;
}
}
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText;
setTimeout('Ajax()',2000);
}
}
xmlHttp.open("GET","data.php",true);
xmlHttp.send(null);
}
window.onload=function(){
setTimeout('Ajax()',2000);
}
该代码重新加载此 div 标签 <div id="ReloadThis"></div> 并从 data.php 文件中获取内容并将其重新加载到此 div 标签中,这很棒,但我的问题是 PHP 文件在重新加载发布的数据时包含发布的数据迷路了,给我看Undefined index。我在谷歌上搜索了如何做到这一点,我发现在 AJAX 中使用$.post,那么$.post 对这个问题有用吗,如果是,我该如何使用它?
谢谢:)
【问题讨论】:
-
您正在使用本机 javascript
XMLHttpRequest对象。$.post是jQuery的语法,是一个JS框架。 -
也许我很累,但我很难理解问题的上下文和内容:您想在发布某些内容后从
data.php检索数据吗?此外,您的代码似乎有一个不断调用自身的函数。最后就像 Chris 提到的,如果你花时间学习 jQuery,这将是一项回报丰厚的投资。让我通过传递 HTTP 是无状态的,这意味着每次您向服务器发送请求时,不要期望上次请求中的值可用,除非您以某种方式明确保存它们。 -
@nt.bas 是的,正是我的问题的内容,以便在发布某些内容后从 data.php 中检索数据
-
好的。因此,我认为您希望
$_POST变量在某些页面向其发出发布请求时保留在 php 脚本中,然后您希望能够在发出此GET请求时检索该数据,对吗?显然这不起作用,因为变量没有保存在任何地方。一个简单的解决方法可能是session variables。否则$.post会像@Chris 建议的那样派上用场。
标签: php javascript mysql ajax database