好的,所以我遇到了这个问题,但我对Ajax还不是很了解,所以我真的不知道如何继续。
我有一个页面每隔7秒使用Ajax和Javascript运行刷新。 每次Ajax页面刷新时,它都会从我的数据库中的SQL值中删除一个。 当该值达到0时,我需要主php页面转到不同的URL。
以下代码位于streets.php上。 它调用streetsdo.php来显示信息。
<script>
function findUser(str) {
var dapage='streetsdo.php';
var http;
var myself = arguments.callee;
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
http = new ActiveXObject('Msxml2.XMLHTTP');
} catch(e) {
http = new ActiveXObject('Microsoft.XMLHTTP');
}
}
if (http) {
http.onreadystatechange = function() {
if (/4|^complete$/.test(http.readyState)) {
document.getElementById('result').innerHTML = http.responseText;
setTimeout(function(){myself();}, 7000);
}
};
http.open('POST',dapage,true);
http.setRequestHeader('Content-type','application/x-www-form-urlencoded');
http.send('req=".$uid."&req2=numb');
}
}
</script>
这是执行刷新的代码。 在streetsdo.php上,MySQL查询基本上是倒计时。 一旦它达到0,我需要streets.php去一个不同的URL。
这可能吗?
我尝试使用标题(“位置:blabla”),但这不起作用,因为它只重定向streetsdo.php页面,而不是脚本运行的streets.php,我陷入了框架。 / p>
编辑此脚本由streets.php上的按钮激活。
<span id='result'><span class='Streets'>
<form method='post' action='streets.php'>
<input type='button' class='theButton' value='Start' onclick='findUser(this.value)'></form>
</span>
答案 0 :(得分:0)
试试这个脚本:
`<script type="text/javascript">
var myTimer;
function ajaxData(){
var result = document.getElementById("result");
var hr = new XMLHttpRequest();
hr.open("POST", "your php file.php", true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var d = hr.responseText;
for(var o in d){
if(d[o].id){
result.innerHTML += '<p>'+d[o].id+'<br></p>';
}
}
}
}
hr.send("your variable which the php will take as $_POST[]");
result.innerHTML = "requesting...";
myTimer = setTimeout('ajax_json_data()',7000);
}
</script>`
答案 1 :(得分:0)
当你的倒计时到零时,ajax调用必须返回一个特殊值。你检查它是否替换
document.getElementById('result').innerHTML = http.responseText;
通过
if(http.responseText == 'finished'){
window.location.href = '/myotherpage.php'
} else{
document.getElementById('result').innerHTML = http.responseText;
}