页面刷新后运行一个函数

时间:2011-03-26 18:48:40

标签: php jquery refresh

好吧,伙计们,所以我有一个页面,它使用带有jquery函数的php函数。

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

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

当用户从确认框中点击“确定”时,会调用php函数:

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

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我认为您可能尝试以不构建的方式使用Web技术。 Web建立在客户端 - 服务器模型上;在您的情况下,php only 在服务器上运行,javascript(和jQuery) only 在用户的Web浏览器上运行。为了从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
            }
        });
    }
});

答案 1 :(得分:0)

Clint是对的 - PHP是服务器端的,所以你必须通过ajax调用运行该函数。

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

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