我有一个PHP文件,其中包含一个表单和一个变量,用于获取mySQL的帖子总数。
$ number显示SQL查询的结果。总数对我有用,因为我使用表格,我也提交了这个号码。在我填写表单期间,该号码可能随时更改,因为用户在此期间提交了新帖子。这意味着我发送的号码是错误的。
我想到了一个重新加载PHP代码的一部分的解决方案,它对我来说很有用。 我不是非常先进的解决方案的PHP专家,所以欢迎任何想法和例子。
答案 0 :(得分:1)
您可能正在寻找PHP中的AJAX based solution。
这是示例 HTML页面,每隔10秒对php脚本进行基于AJAX的调用,以获取变量的刷新值。我故意不使用jquery等来演示如何从HTML页面调用AJAX,这可能需要进行一些调整。
<html>
<head>
<script type="text/javascript">
var refresh = 10000; // 10 sec; change it if you want
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){
// here you assign fetched value to your input field
document.myForm.myVar.value = xmlHttp.responseText;
setTimeout('Ajax()', refresh);
}
}
xmlHttp.open("GET","http://example.com/script_that_refreshes_var.php",true);
xmlHttp.send(null);
}
window.onload=function() {
setTimeout('Ajax()', refresh);
}
</script>
</head>
<body>
<form name="myForm">
<input type="text" name="myVar" value="<?php echo $myVarInitialVal;?>">
</form>
</body>
</html>
答案 1 :(得分:1)
不要从表单中提交数字,确定获取表单数据的代码中的数字。显然,SQL查询的结果不是表单数据(除非您可以描述您的情况需要的原因)。
如果这不能回答您的问题,我认为我们需要更多信息和一些实际的代码示例来帮助您。
答案 2 :(得分:0)
为什么不简单地抓取处理脚本上的$ number,而不是通过表单发送它。两个用户填写表单,然后点击提交 - &gt;处理脚本始终具有准确的计数。否则你会进入不必要的AJAX使用。
答案 3 :(得分:0)
Javascript setTimeout()
循环如何调用AJAX更新函数来检索更新的帖子计数并填写相应的HTML元素?每10秒钟调用一次应该这样做(太频繁了,它会有慢速互联网连接的倾向)。
确切的代码当然取决于所使用的AJAX库以及确切的页面布局。
// Javascript
function startUpdate()
{
AJAX.call("http://path/to/server/script.php", "updateCallback");
}
function updateCallback(value)
{
document.getElementById('variableDiv').innerHTML = value;
setTimeout("startUpdate();", 10000);
}