PHP и window.close в JavaScript - PullRequest
0 голосов
/ 22 ноября 2011

У меня проблема.У меня есть страница, на которой при нажатии на кнопку появляется всплывающее окно с формой.Итак, я заполняю некоторые данные и отправляю.Что я хочу сделать, это отправить форму, закрыть форму и обновить родительскую страницу.Я не хочу делать это с AJAX.

Проблема в том, что на моей родительской странице мне приходится обновлять содержимое с помощью входной информации формы.данные показаны, а иногда нет.Вы знаете, почему это могло произойти?

Я просто использую onsubmit="refreshParent()" в своей форме.Информация всегда хранится в моей базе данных, поэтому я думаю, что проблема может заключаться в том, что иногда обновление получает новую информацию, а иногда нет.

function refreshParent() {    
    window.opener.location.reload();
    window.close();
}

Ответы [ 3 ]

2 голосов
/ 22 ноября 2011

Я использую это для перезагрузки страницы, которая открыла всплывающее окно:

 <script language="JavaScript">
 <!--
 function reloadParentPage() {
     window.opener.location.href = window.opener.location.href;
     if (window.opener.progressWindow) {
         window.opener.progressWindow.close()
     }
     window.close();
 }
 //-->
 </script>

Кстати, приведенный выше код вызывается ссылкой или кнопкой на всплывающей странице.

1 голос
/ 22 ноября 2011

Между сценарием, выполняющим вставку, и сценарием, перезагружающим родительский элемент, имеется условие состязания.

Решение заключается в вызове refreshParent на странице после отправки - таким образом вы знаете, что данные находятся в базе данных,Вам даже не нужно делать это в готовом документе - верните заглушку, которая просто определяет и вызывает refreshParent в теге head.

0 голосов
/ 22 ноября 2011

В PHP, когда вы запускаете скрипт post, в конце включите этот код:

echo '<html><script language="javascript">
      parent.location.href="http://'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"].'"; // or any other url
      </script></html>';

Это выведет JavaScript, который перезагрузит окна.

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