这里有另一个初学者问题:/ ...
我有一个MySQL数据库和一个包含一些PHP文件的Web应用程序,比如page1.php和page2.php。
当用户在page1.php上时,我需要在我的数据库获得特定更新时自动将其重定向到page2.php。让表" foo"是:
-------------------
| ID | NAME | AGE |
-------------------
| 1 | Bob | 32 |
-------------------
| 2 | Ken | 28 |
-------------------
如果数据库已更新且Ken的年龄变为30岁,我希望page1.php上的用户在page2.php上重定向。
我知道这可以通过一些AJAX来实现,通过使用setInterval()方法不断调用php文件,但我找不到任何可以处理重定向功能的东西。到目前为止我发现的所有脚本都会更新HTML页面中的div容器,如:
<script>
setInterval(
(function () {
$("#somediv").load("file.php");
}), 10000);
</script>
<div id="somediv"></div>
显然无法帮助我重定向用户。我已经在这几个小时了,相信我们,我做了很多研究。那么编写一个自动查找要插入MySQL数据库的指定数据的脚本的最佳方法是什么,然后将用户从page1.php重定向到page2.php?
提前致谢:)
答案 0 :(得分:2)
您对AJAX调用有正确的想法,但不是使用$.load()
,而是使用类似$.get()
的内容:
<script type="text/javascript">
function check_db() {
$.get( 'file.php', function( result ) {
if ( result == 'changed' ) {
location.href = 'page2.php';
}
setTimeout( 'check_db', 10000 );
} );
}
check_db();
</script>
然后输出file.php
&#34;更改&#34;如果数据库发生变化,您正在寻找。
上述JavaScript将每隔10秒调用file.php
,这将检查数据库更改。如果它发生了,那么它将输出&#34;更改&#34;,location.href
方法将使用JS将您重定向到page2.php
。
@ vher2对file.php
提出了一个很好的观点,可能需要很长时间才能返回。我已经修改了示例以将其考虑在内。因此,不是每隔10秒调用一次,而是在一次调用结束和下一次调用开始之间的10秒内运行。
答案 1 :(得分:0)
你可以简单地让你的SQL做你的事情,检查sql是否更新了表,然后再做一个标题位置,如下所示:
$query = $DB->query("UPDATE something SET age = '$30' WHERE member_id = '$member_id'");
if($query) {
header('Location: page2.php');
}