test2.php(临时名称):
<?php
if ($_SESSION["dbrows_now"] > $_SESSION["dbrows_prev"]) {
echo "<p>Previous Rows</p>";
echo $_SESSION["dbrows_prev"];
echo "<p>Now</p>";
echo $_SESSION["dbrows_now"];
echo "<h3>The rows have changed as you can see</h3>";
//$_SESSION["dbrows_prev"] = $_SESSION["dbrows_now"];
echo "
<script type='text/javascript'>
window.setInterval(function() {
var elem = document.getElementById('chat');
elem.scrollTop = elem.scrollHeight;
}, 1);
</script>
";
}
?>
使用AJAX / JavaScript调用代码的JavaScript:
//Function that updates new rows
function newrows(str) {
if (str == "") {
return;
} else {
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("test").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","/test2.php?success=true"+str,true);
xmlhttp.send();
}
}
//Updates new rows every x seconds
setInterval('newrows()',5000);
基本上我正在开发一个非常简单的聊天系统,我使用PHP计算行数,如果它们改变了,那么div将滚动到页面的底部。
问题是我在index.php页面上有div,代码在example.php页面上。
出于某种原因,如果我查看我的代码的来源,我可以看到JavaScript代码已经回显到index.php页面(但是代码不起作用,但是如果我将它粘贴到我的索引中页面直接它确实有效)
注意: 我不能将代码直接放入索引页面,因为我只希望它在添加新消息时执行代码(好一个新行)(如果我这样做的话,它只会一直滚动到底部24/7 )
我对WebSockets了解所以请不要一直告诉我这个系统有多糟糕!
非常感谢!
附注:我对PHP非常擅长,但知道JavaScript很少,这就是为什么我的代码制作这样的系统是如此糟糕...
编辑:我只是想让每个人都知道我对任何其他Jquery或JavaScript解决方案持开放态度来执行PHP代码,谢谢!