【问题标题】:Run a function after a page refresh页面刷新后运行函数
【发布时间】:2011-03-26 18:48:40
【问题描述】:

好的,所以我有一个使用 php 函数和 jquery 函数的页面。

jQuery 函数或简单的确认框和对话框。所以我现在需要的是当用户点击一个按钮时,我需要显示一个确认框。 然后当用户接受时,我运行一个以页面刷新结束的 php 函数,然后我想显示一个对话框来显示它已经完成。

但是现在发生的事情是,确认框出现了。当用户接受时,对话框开始显示,然后页面刷新......

这是当用户从确认框中单击“确定”时调用的 php 函数:

function resetText()
{
    $url = curPageURL();
    ?>
    location.href='<?php echo"$url"; ?>'
    message();
    <?php
}

感谢您的帮助。

【问题讨论】:

  • 能否请您发布您的整个代码?

标签: php jquery refresh


【解决方案1】:

我认为您可能正在尝试以一种并非专为使用而设计的方式使用网络技术。网络建立在客户端-服务器模型之上;在您的情况下,php only 在服务器上运行,而 javascript(和 jQuery)only 在用户的网络浏览器上运行。为了从 javascript 调用 php,您必须以新的 Web 请求的形式这样做。

你会想要将你想要在 php 中做的任何事情移动到一个不同的 url 端点,你可以调用它,比如 /callback.php,经过一番思考,它会返回如下内容:

{ 'myUrl': 'http://stackoverflow.com' }

然后,您的 jQuery 将如下所示:

$('#myButton').click(function()
{
    if (confirm('My confirmation message'))
    {
        $.ajax({
            type: 'get',
            dataType: 'json',
            url: '/callback.php',
            success: function(result)
            {
                alert('You\'re about to go to ' + result.myUrl);
                window.location.href = result.myUrl;
            },
            error: function(request)
            {
                // handle somehow
            }
        });
    }
});

【讨论】:

  • 实际上,我现在意识到我向后解释了您想要的内容。对于您想要的,您可能希望向用户最终访问的页面添加一个查询字符串参数,如果该参数存在,请添加一个带有警报框的
【解决方案2】:

Clint 是对的 - PHP 是服务器端的,因此您必须通过 ajax 调用来运行该函数。

不过,如果这对您有用,并且如果您想在刷新时看到弹出框,您可以在执行刷新之前设置一个会话变量,然后执行以下操作:

$(document).onReady(function(){
      if (isset(that session var)){ show that popup, remove session var }
});

【讨论】:

    猜你喜欢
    • 2017-06-13
    • 2020-01-13
    • 1970-01-01
    • 2014-05-12
    • 2020-06-29
    • 2021-12-25
    • 2016-06-26
    • 2018-01-05
    • 1970-01-01
    相关资源
    最近更新 更多