[英]update “quantity remaining” without refreshing site
我有一个HTML站点,其页面使用PHP代码查询MySQL数据库。 该表包含3列(日期,时间,剩余时间)。 基于当前日期和时间,我希望HTML页面返回并显示“剩余”列中的相应值。
诀窍是我希望该值自动更新(AJAX?),而无需用户刷新页面或单击按钮。
到目前为止,我可以使用的PHP可以根据日期显示“剩余”值,但是我还没有弄清楚如何查询日期和时间,也没有自动刷新。
到目前为止我想通的PHP代码
(注意: quantitytest_config.php
仅包含主机名/用户名/密码)
<?php
include 'quantitytest_config.php';
//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
//select a database to work with
$selected = mysql_select_db("grace59_countdown",$dbhandle)
or die("Could not select countdown");
//execute the SQL query and return records
$result = mysql_query("SELECT remaining FROM quantity WHERE salesdate=CURDATE()");
//fetch tha data from the database
while ($row = mysql_fetch_array($result)) {
echo "Quantity:".$row{'remaining'}."<br>";
}
//close the connection
mysql_close($dbhandle);
?>
在此先感谢您的帮助。 非常感激。
使用jQuery.load
可以轻而易举,以下代码片段将调用您的PHP脚本,并每10秒更新一次剩余计数。
setInterval(function(){
// Assumes the container has the id of count
// and the php script is called remaining.php
$("#count").load("remaining.php")
}, 10000);
如果没有jQuery,则必须阅读一些内容,但这并不难
至于其他任何问题,您都已将其嵌入到同一问题中。 您不应该将多个问题合为一体。 每个问题都应显示您尝试过的内容,预期/实际行为,错误消息。 这就是您的问题如何对他人(不仅仅是您自己)有用的方法,这也是Stack Overflow的核心。 目前,您的问题是我不知道该怎么做,所以这不太适合SO。
如前所述,您应该使用AJAX。
基本上,您会不时地调用页面,并检查新结果(如果存在)并将其检索给用户。
您将要调用的页面是一个PHP文件,类似于您发布的页面,该文件将返回AJAX调用的结果。
通话后,结果将呈现给用户。
通常,在AJAX中,GET方法更快,因为它不涉及处理POST字段,并且,因为您仅获取信息,所以我会坚持下去。
这是您要查找的基本语法。 我猜它有点复杂但可以理解的名字。
<script>
setInterval(function(){check_new_stuff();}, 10000);
function check_new_stuff(){
$.ajax({
type: "GET",
url: "url_with_your_php_code.php",
dataType: 'html',
data: {name_of_the_parameter_to_be_passed_in_get: value_of_the_parameter_to_be_passed_in_get},
success: function(html){
$("#div_to_have_its_html_replaced_with_the_result_from_php_code").html(html);
},
error: function(){
},
complete: function(){
}
});
setTimeout(function(){check_new_stuff();}, 10000);
}
</script>
(您可以在此处了解更多信息 )
关于您的时间问题,我没有发现任何问题。 您只需要添加字段并在数据库查询中将时间值传递给它?
(如果您想要当前时间?-尝试猜测您的列名,因为在整个说明中都没有保持相同的表命名法)
$result = mysql_query("SELECT remaining FROM quantity WHERE salesdate=CURDATE() AND salestime=CURTIME()");
(具体时间,由您自己指定?)
$result = mysql_query("SELECT remaining FROM quantity WHERE salesdate=CURDATE() AND salestime='11:15:00'");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.