繁体   English   中英

使用Javascript(或Jquery?)刷新PHP查询

[英]Refresh PHP query using Javascript (or Jquery?)

我实际上正在寻找在页面上做几件事情。 我需要某些文本字段来经常更新并提取我存储在数据库中的信息。 我在JavaScript中使用PHP进行测试(或在PHP中使用JS?)。 我希望这些字段可以更新,而无需用户刷新页面。 我看过一些人提出类似问题的例子,但是我不明白如何根据自己的需要实施它。 这是我所拥有的,我确定这不是很有效,但是我试图理解。 这是我所拥有的

<!DOCTYPE html>
<html>
<body>

<div>Viewers and Followers:</div><div id="demo"></div>


<script>
var myVar = setInterval(function(){myFunc()}, 1000);

function myFunc() {
    var t = "<?php $con=mysqli_connect('myhost','user','pass','myDB'); $myQuery=$con->query("SELECT * FROM streamers WHERE cname='Famiflashmedia'"); $featured = $myQuery->fetch_array(MYSQL_BOTH);?><?php echo $featured['viewers']?> viewers and <?php echo $featured['followers']?> followers!! <?php mysqli_close($con);?>"
    document.getElementById("demo").innerHTML = t;
}
</script>

</body>
</html>

我也尝试过这样做,并得到了相同的结果:

<?php 
$con=mysqli_connect('myhost','user','pass','myDB'); 
$myQuery=$con->query("SELECT * FROM streamers WHERE cname='Famiflashmedia'"); 
$featured = $myQuery->fetch_array(MYSQL_BOTH);
?> 

<!DOCTYPE html>
    <html>
    <body>

    <div>Viewers and Followers:</div><div id="demo"></div>


    <script>
    var myVar = setInterval(function(){myFunc()}, 1000);

    function myFunc() {
        var t = "<?php echo $featured['viewers']?> viewers and <?php echo $featured['followers']?> followers!!"
        document.getElementById("demo").innerHTML = t;
    }
    </script>

    </body>
    </html>
<?php 
mysqli_close($con);
?>

发生的事情似乎是永远不会重新发送查询以获取最新结果。 它刷新文本(至少我这么认为,因为我与弹出该函数每3秒了它所有的PHP,从不更新提示功能试过)。 关于我在做什么错的任何建议吗? 谢谢。

PHP在服务器上运行一次,然后不再运行。 要运行多次更新,你需要AJAX -或者可能只是.load()


首先,将您的PHP放在一个单独的文件中,然后根据需要调用它— myfile.php例如:

<?php 
$con=mysqli_connect('myhost','user','pass','myDB'); 
$myQuery=$con->query("SELECT * FROM streamers WHERE cname='Famiflashmedia'"); 
$featured = $myQuery->fetch_array(MYSQL_BOTH);
?>
<?php echo $featured['viewers']?> viewers and <?php echo $featured['followers']?> followers!! <?php mysqli_close($con);?>"

然后使用jQuery定期从该脚本更新页面的某些部分:

<!DOCTYPE html>
<html>
<body>

<div>Viewers and Followers:</div><div id="demo"></div>

<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script>
var myVar = setInterval(myFunc, 1000);

function myFunc() {
    $("#demo").load('/path/to/myfile.php');
}
</script>

</body>
</html>

您构建的此PHP页面将仅在页面加载后才显示数据库信息。 如果要动态更新页面,则可以考虑“ AJAX”加载一个单独的PHP页面,其中包含数据库查询并将显示的结果显示到当前页面的Div中。 您可以仅使用Javascript完成此操作

http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp

或jQuery使用load()函数对此实现了相当不错的实现。

http://api.jquery.com/load/

也许您可以使用meta标签刷新页面? 对于实例:

<meta http-equiv="refresh" content="30">

这将每30秒刷新一次页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM