现在我有两页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
。我在google上搜索了如何执行此操作,我发现在AJAX中使用$.post
,因此$.post
对此问题有用,如果是,那么我该如何使用它?
谢谢:)
答案 0 :(得分:2)
HTTP是无状态协议,这意味着服务器不需要保存先前请求发送的数据。但是有很多方法 - 显然与HTTP无关 - 可以随时保存数据并在需要时检索它。
现在,如果我理解了正确的问题,那么您希望第二个请求中的数据可以返回到$ _POST。好吧,it won't be!
$ _POST只保存发送给它的数据(通常来自表单或ajax),仅用于current
请求。如果它不断向服务器请求保存结果,那么事情就会很快失控。您可以使用其他机制将数据从简单到有点难以保存:
save the data in a database(e.g. a mysql database).
现在这是您的data.php
所在的位置:{{1可能不会使用$ _POST!事实上你正在使用$ _GET。它必须获取您保存在数据库中的数据并将其发回给您。这个答案超出了你原来的问题,因为好像你还没有足够的关于持久性的知识。关于data.php
:它是一个jQuery方法,允许您使用$.post
方法而不是通常的POST
方法从服务器获取数据,但是GET
这将是一些参数与数据库交互的脚本需要。有关详细信息,请参阅documentation。
我没有给出任何代码示例来帮助您,因为您提供的代码示例无法供人们提供答案。由于您是新手,以下页面将有助于您提出更好的问题:
如果英语不是您的主要语言,您可以提及它并参与您的问题编辑,而其他人则试图改进它们。