2011-03-18 102 views
0

我有一個test.php的頁面的按鈕,點擊它調用JavaScript函數。無法更新UI

test.php的 按鈕調用myfunct的

內容()test1.php 具有id = 「消息」

功能myfunct()一個div { window.location的(頁面的

內容.PHP'); document.getElementById(「message」)。innerHTML =「更新消息」; }

page.php的內容是 header('Location:http://test1.php'); 退出;現在的問題是,它被重定向到所需的網頁,但在此之後它不執行此代碼'document.getElementById(「message」)。innerHTML =「更新的消息」;'。

回答

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數組中存在的變量等

0

您不能運行從頁面上的JavaScript的test.php你重定向到(page.php文件)。當調用window.location('page.php')時,瀏覽器立即停止在test.php上執行腳本並開始加載page.php。爲了在page.php上運行javascript,您需要將其包含在該文件中。

如果您需要從test.php傳遞數據(例如,「更新消息」),您可以通過重定向到window.location(「page.php?message = Updated%20message」 )。

0

這不起作用。原因如下:

  1. 當你調用window.location時,你的瀏覽器被重定向到page.php。因此,在test.php上發生的任何事情都將被丟棄。
  2. 當page.php重定向到test.php時,它被認爲是一個全新的頁面;它不記得狀態

我不確定你在尋找什麼,但有很多解決方法。下面是一個簡單的一個:

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...');