php - 通过 PHP 进行后台更新?

标签 php jquery mysql

我不知道是否只有 PHP 才有可能,但我想会在这里问...

我有一个每 15 天更新一次数据的 PHP 代码。我的问题是它更新整个过程需要超过 5 秒,因此用户必须等到更新完成。

我正在寻找的是我想在用户查看内容时进行后台更新。或者在加载网页后显示正在更新的闪烁文本。

我当前的代码如下:-

$result = $db->sql_query("SELECT * FROM data1,data2,data3,data4 WHERE person='" .$name. "'");

$row = $db->sql_fetchrow($result);
$day = $row['regtime'];
$days = (strtotime(date("Y-m-d")) - strtotime($row['regtime'])) / (60 * 60 * 24);
if($row > 0 && $days < 15){

$row = ['name'];
$row = ['age'];
$row = ['place'];
$row = ['address'];
$row = ['lat'];
$row = ['long'];
$row = ['geo'];
//etc
}else{ //do update
//insert into database
}

最佳答案

好的马修,

这里假设您在页面上有一个空的 div,其 id=myStatusDiv。此外,它假定您有一个 url/php 文件/home/longprocess。将 jquery 添加到页面,然后在页面底部添加以下内容:

<script type="text/javascript">
    $(document).ready(function() {
        $.ajax({
            type: 'POST',
            data: "username=" + $("#username").val(),
            url: 'longprocess.php',
            beforeSend: function() {
                // you could also put a spinner img or whatever here too..
                $("#myStatusDiv").html("please wait, page being updated...");
            },
            success: function(result) {
                $("#myStatusDiv").html(result);
            }
        });
    });
</script>

基本上,当 dom 加载后,$.ajax 函数将在后台静默运行。完成后,myStatusDiv div 将填充您从 longprocess 方法生成的任何状态消息。这可以是从一条简单消息到页面上“几乎”整个部分的任何内容。您的 PHP 页面只需搜索通过数据对象发送的命名参数 - 即在上面的示例中 -> $name = $_POST['username'];

网上和 SO 中有很多示例。

祝你好运(提示:在 google 上搜索“php ajax jquery $_POST”);)

吉姆

[edit] - 当然,您必须在 $,ajax 方法中包含您的 $_POST 变量...我假设您有一个文本框输入id=用户名。还有很多例子,但这里有一个我发现的快速例子:http://www.talkphp.com/vbarticles.php?do=article&articleid=58&title=simple-ajax-with-jquery

关于php - 通过 PHP 进行后台更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3253748/

相关文章:

php - 有3张表 "student","dept","prev_edu"...tbl学生是家长,其 'id'在其他人中是FK

php - 组织的简单网站

javascript - jQuery .on() tr click 事件使用 .not() on tr 复选框点击?

mysql - 如果不是 ODBC,mysql、postgresql 和 Oracle sql 将什么用于其命令行客户端?

php - 如何去除 PHP 调查结束时的通知和警告?

php - Laravel 急切加载计数关系

javascript - 使用 jquery .css() 属性根据浏览器大小动态清除绝对定位的 div

jquery - 自定义 "animate"jQuery 函数。如何重置步骤的 "now"变量?

mySQL从同一个表的不同行中选择

sql - 递归 "ON DUPLICATE KEY UPDATE"