无法更新UI

时间:2011-03-18 06:28:37

标签: php javascript header

我有一个带有按钮的test.php页面,点击它调用javascript函数。

test.php的内容 按钮调用myfunct()

test1.php的内容 一个id =“message”的div

function myfunct(){ window.location的( 'page.php文件'); document.getElementById(“message”)。innerHTML =“更新的消息”; }

page.php的内容是 头( '位置:http://test1.php'); 出口;

现在的问题是,它被重定向到所需的网页,但之后它没有执行此代码'document.getElementById(“message”)。innerHTML =“Updated message”;'。

3 个答案:

答案 0 :(得分:0)

这是b / c重定向后的代码没有在新页面上执行。

你可以做的是将消息传递为get参数,如此。

test.php的

function myfunct(){ window.location('page.php?message=[put message here]'); 

page.php文件

 header('Location: http://[some_page].com/?message='.$_GET['message']);

然后在最后一页上使用$_GET['message'];获取消息并将其放在页面上的某个位置。

请记住验证$ _GET数组中是否存在变量等

答案 1 :(得分:0)

您无法在重定向到(page.php)的页面上从test.php运行javascript。调用window.location('page.php')时,浏览器立即停止在test.php上执行脚本并开始加载page.php。要在page.php上运行javascript,您需要将其包含在该文件中。

如果您需要从test.php传入数据(例如,“更新消息”),您可以通过重定向到window.location(“page.php?message = Updated%20message”)将其作为get参数执行。

答案 2 :(得分:0)

这不起作用。原因如下:

  1. 当您调用window.location时,您的浏览器将重定向到page.php。因此,test.php上发生的任何事情都会被丢弃。
  2. 当page.php将您重定向回test.php时,它被视为一个全新的页面;它不记得状态
  3. 我不确定您要实现的目标,但有许多变通方法。这是一个简单的:

    test.php的

    function myfunct(){ 
    <?php
    session_start();
    if (!empty($_SESSION['updated'])) {
    $_SESSION['updated'] = '';
    echo "window.location('page.php'); ";
    } else {
    echo 'document.getElementById("message").innerHTML="Updated message";';
    }
    ?>
    } 
    

    page.php文件:

    <?php
    session_start();
    $_SESSION['updated'] = true;
    header('Location:http://webpage...');