Перейти к содержимому


Переход на другую страницу из доп. действия во всплывающем окне


Сообщений в теме: 12

#1 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 02 Август 2012 - 06:51

Есть доп. действие во всплывающзем окне. По окончанию вычисления необходимо перейти на другую страницу. Вставляю следующий код
echo "<script>";
echo "window.opener.location.reload(1);"; // Перезагружаем родительское окно
echo "window.close()"; // Закрываем текущее
echo "</script>";
echo "<script>location.href='".$config['site_root']."/view_line2.php?table=88&line=".$nakl_id."&back_url=".$base64_current_url."'</script>"; 
но перехода не происходит. Текущее окно закрывается, родительское перезагружается и всё.
Что может быть не так?

#2 Гость_Roman_*

  • Гости

Отправлено 02 Август 2012 - 07:48

У Вас просто закрывается окно и до строчки с переходом дело не доходит.
echo "<script>";
echo "window.opener.location.href='".$config['site_root']."/view_line2.php?table=88&line=".$nakl_id."&back_url=".$base64_current_url."'"; // Переход на другую страницу
echo "window.close()"; // Закрываем текущее
echo "</script>";


#3 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 02 Август 2012 - 11:29

Но переход осуществляется в родительском окне, которое не закрывается

#4 Гость_Roman_*

  • Гости

Отправлено 02 Август 2012 - 11:36

Ну если Вам необходимо выполнить переход во всплывающем окне, то вот так:
echo "<script>";
echo "window.opener.location.reload(1);"; // Перезагружаем родительское окно
echo "location.href='".$config['site_root']."/view_line2.php?table=88&line=".$nakl_id."&back_url=".$base64_current_url."'";
echo "</script>";


#5 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 02 Август 2012 - 21:02

Почему-то не работает конструкция
back_url=".$base64_current_url
Вот полный кусок кода
echo "<script>";
echo "window.opener.location.href='".$config['site_root']."/view_line2.php?table=88&line=".$nakl_id."&back_url=".$base64_current_url."';"; // Перезагружаем родительское окно
echo "window.close()"; // Закрываем текущее
echo "</script>";
Страница загружается, но в строке адреса
http://127.0.0.1:755...e=187&back_url=
и все.
Пробовал вывести переменную $base64_current_url через echo - выводится пустая строка

Сообщение отредактировал arsenal: 02 Август 2012 - 21:43


#6 Гость_Roman_*

  • Гости

Отправлено 03 Август 2012 - 07:25

Необходимо объявить эту переменную глобально. Добавьте эту строчку в начало кода:
global $base64_current_url;


#7 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 03 Август 2012 - 15:09

Все работает, спасибо.
Возник следующий вопрос. Я открываю при помощи вышеприведенного вычисления новую страницу с просмотром записи, где вместо "вернуться в таблицу" стоит "вернуться". Если при этом мне надо распечатать этот документ, а потом обратно вернуться к исходной странице (для чего собственно и вводилась кнопка "вернуться"), то это уже не получиться, т.к. после распечатки конструкция back_url пропадает. Думаю, что это не совсем логично.
Если из исходного окна последовательно переходить по ссылкам, то также последовательно можно и вернуться к исходному окну. А вот при распечатке эта последовательность прерывается, что не удобно.

#8 Гость_Roman_*

  • Гости

Отправлено 03 Август 2012 - 15:16

Попробуем исправить в следующих ревизиях.

#9 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 07 Август 2012 - 07:24

Вылезла следующая проблема.
Создаю доп. действие во всплывающем окне по созданию новой наклданой, далее окно закрывается и в родительском окне осуществляется переход на страницу с созданной накладной с использованием back_url.
echo "<script>";
echo "window.opener.location.href='".$config['site_root']."/view_line2.php?table=88&rel_table=84&rel_line=$ID&rel_field=962&line=".$nakl_id."&back_url=".$base64_current_url."';"; // Переходим в просмотр созданной накладной в родительском окне
echo "window.close()"; // Закрываем текущее
echo "</script>";
Но когда на этой странице с наклданой нажимаю "Вернуться", то попадаю не на предыдущую родительскую страницу, а на страницу окошка, которое всплывало при выполнения доп. действия и потом закрылось

#10 Гость_Roman_*

  • Гости

Отправлено 07 Август 2012 - 08:15

Ну так-то всё корректно, таков механизм обратных ссылок.

#11 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 07 Август 2012 - 10:50

Но я же переход делаю из родительского окна, соответственно и вернуться должен в родительское окно. Причем вначале, когда я объявил переменную $base64_current_url глобальной и у меня заработал обратный переход, было все нормально и переход происходил корректно. Потом, в результате каких-то действий (не могу сказать точно, то ли обновил ревизию, то ли внес какие-то изменения в вычисления, хотя вроде бы ничего глобально не менял) возврат стал происходить некорректно.

#12 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 17 Август 2012 - 14:32

Просмотр сообщенияRoman (07 Август 2012 - 08:15) писал:

Ну так-то всё корректно, таков механизм обратных ссылок.
Может как-то можно поменять код в п.9, чтобы возврат происходил на родительскую страницу?

#13 Гость_Roman_*

  • Гости

Отправлено 17 Август 2012 - 15:31

К сожалению, пока никак.





Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных