не удалось обновить интерфейс - PullRequest
0 голосов
/ 18 марта 2011

У меня есть страница test.php с кнопкой, нажатие которой вызывает функцию javascript.

содержимое test.php кнопка вызова myfunct ()

содержимое test1.php div с id = "message"

function myfunct () { window.location ( 'page.php'); document.getElementById ("message"). innerHTML = "Обновленное сообщение"; }

содержимое page.php заголовок ( 'Location: http://test1.php'); выход;

Теперь проблема в том, что он перенаправляется на нужную веб-страницу, но после этого не выполняет этот код 'document.getElementById ("message"). InnerHTML = "Обновленное сообщение";'.

Ответы [ 3 ]

0 голосов
/ 18 марта 2011

Вы не можете запустить javascript из test.php на странице, на которую вы перенаправляете (page.php). Когда вызывается window.location('page.php'), браузер немедленно прекращает выполнение сценариев на test.php и начинает загрузку page.php. Чтобы запустить javascript на page.php, вам нужно включить его в этот файл.

Если вам нужно передать данные из test.php (например, «Обновленное сообщение»), вы можете сделать это в качестве параметра get, перенаправив на window.location («page.php? Message = Обновлено% 20message») .

0 голосов
/ 18 марта 2011

Это не будет работать. Вот почему:

  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...');
0 голосов
/ 18 марта 2011

То есть код после того, как перенаправление не будет выполнено на новой странице.

То, что вы можете сделать, это передать сообщение как параметр 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 и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...