Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PHP и JS 
V
    Опции темы
BlackRu
Дата 30.6.2014, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 14.9.2009

Репутация: нет
Всего: 4



Вопрос такой. 

Скрипт PHP выполняет некие действия. Происходит вызов скрипта JS для закрытия окна.
Скрипт JS лежит в отдельном файле и вызывается так:

Код

require_once 'winclose.htm';


Содержимое скрипта:


Код

<script>
var tm=1000
window.setTimeout("window.close()",tm)
</script>


1. Можно ли в вызвать скрипт через 
Код
require_once 'winclose.htm';

несколько раз? Если, допустим, идет ряд проверок, при которых должен вызываться скрипт.

2. Имеет ли значение имя скрипта с js кодом?' winclose.htm или winclose.php?

3. Если скрипт JS лежит в winclose.php, следует ли оформлять его так: 

Код

<?php
$var="echo <script>
var tm=1000
window.setTimeout('window.close()',tm)
</script>";

?>



И тогда вызывать после уже через переменную?


Это сообщение отредактировал(а) BlackRu - 30.6.2014, 12:55


--------------------
Удалена администрацией форума
PM MAIL WWW Skype   Вверх
baldina
Дата 30.6.2014, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



Цитата(BlackRu @  30.6.2014,  12:53 Найти цитируемый пост)
Скрипт PHP выполняет некие действия. Происходит вызов скрипта JS для закрытия окна.


BlackRu, php исполняется на web-сервере, a js - на клиенте (в браузере). непосредственной связи между их исполнением нет. результат деятельности php - html, который будет интерпретироваться браузером.

если это стало понятно, вы на все вопросы сможете ответить сами.
PM MAIL   Вверх
BlackRu
Дата 30.6.2014, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 14.9.2009

Репутация: нет
Всего: 4



baldina, вопрос не о том, что выполняется сервером, а что браузером.
Вопрос об оформлении. Скрипт PHP закончил свою работу, сработал JS.
Вопрос в том, как включен скрипт в страницу.  Дублировать ли   require_once 'winclose.htm'; после каждой проверки? Или использовать переменную? 
Если я включаю скрипт JS  в самое начало страницы, то при ее открытии, браузер ее сразу же закроет (так как скрипт выполняется на стороне клиента). Но при require_once 'winclose.htm';  единожды, php все равно продолжит работу. 

Это сообщение отредактировал(а) BlackRu - 30.6.2014, 14:19


--------------------
Удалена администрацией форума
PM MAIL WWW Skype   Вверх
_zorn_
Дата 1.7.2014, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1076
Регистрация: 21.8.2007

Репутация: 6
Всего: 12



Цитата(BlackRu @  30.6.2014,  20:53 Найти цитируемый пост)
несколько раз?

Подсказать отличия require_once от require ? smile
А для 
Цитата(BlackRu @  30.6.2014,  20:53 Найти цитируемый пост)
Если, допустим, идет ряд проверок, при которых должен вызываться скрипт.

лучше наверное использовать include. 
Он вызывается на этапе выполнения, в отличии от require который по сути делает copy/paste указанного файла в место вызова require ДО компиляции в байт код.
PM MAIL   Вверх
BlackRu
Дата 1.7.2014, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 14.9.2009

Репутация: нет
Всего: 4



Цитата

Подсказать отличия require_once от require ?


Но в конечном счёте, даже  если сделано так:

===Тело скрипта====

Условие
require_once 

Условие 2
require_once 

Условие 3
require_once 

===Конец тела скрипта===

Файл все равно включен один раз и уже во время исполнения копируется в нужное ?
Или включает три раза потом транслирует, что как-то ближе к реальности smile
Не очень понятен механизм. 
 





Это сообщение отредактировал(а) BlackRu - 1.7.2014, 10:59


--------------------
Удалена администрацией форума
PM MAIL WWW Skype   Вверх
_zorn_
Дата 1.7.2014, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1076
Регистрация: 21.8.2007

Репутация: 6
Всего: 12



Цитата(BlackRu @  1.7.2014,  18:42 Найти цитируемый пост)
во время исполнения копируется?

Нет. После первого срабатывания _once все остальные будут игнорироваться с тем же файлом/аргументом.
Причем require сработает ВНЕ ЗАВИСИМОСТИ от условий.

Лажанулся. Видимо раньше так было (в бородатых годах smile). Сейчас require от include отличается только уровнем предупреждения при не существующем файле.

Это сообщение отредактировал(а) _zorn_ - 1.7.2014, 11:04
PM MAIL   Вверх
BlackRu
Дата 1.7.2014, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 14.9.2009

Репутация: нет
Всего: 4



_zorn_, т.е. как это вне зависимости от условий!  Привожу пример для наглядности (так как задачи всегда лучше решать определенные):

Файл первый содержит ссылку:
<a href="something.php" target="_blank">
 
Важно, что открывается новое окно. 

Файл something.php содержит код:

Код

 
<?

$A=$B;

 if($A==$B)  {
require_once 'winclose.htm';

}

else {

echo "Окно висит";

}
?>


Если А равно B - окно закрылось.
 
Если А не равно B соответственно происходит то, что должно. Код закрытия не срабатывает.


  

Это сообщение отредактировал(а) BlackRu - 1.7.2014, 11:32


--------------------
Удалена администрацией форума
PM MAIL WWW Skype   Вверх
baldina
Дата 1.7.2014, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



BlackRu, первая (серверная) часть у вас примерно такая
http://ideone.com/Q8hmhs
к закрытию окна она не относится, вы лишь генерируете html

когда вы её отладите и результат вам понравится, отлаживайте клиентскую часть, в которой и будет закрытие окна, типа
http://jsfiddle.net/exFxP/

Добавлено через 4 минуты и 21 секунду
что касается require и проч, лучше напишите функцию
Код

<?php
// js.php
function js_script ($code) {
  return '<script type="text/javascript">'.$code.'</script>';
}
function js_close ($timeout) {
  return "setTimeout(function(){window.close()},$timeout)"
}

и вызывайте у себя
Код

<?php
require_once ('js.php');
...
if ($a==$b)
  echo js_script(js_close(500));

еще лучше поместите javascript в отдельный файл .js и подключайте
PM MAIL   Вверх
Gold Dragon
Дата 1.7.2014, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Изначально логика неправильная. 
PHP должен выполнять свои функции, а JS свои..

Что за такие действия выполняет PHP? после которых должен вызваться JS который закроет страницу? Страница то формируется вообще и что там?

Добавлено через 1 минуту и 33 секунды
Цитата(baldina @  1.7.2014,  12:49 Найти цитируемый пост)
еще лучше поместите javascript в отдельный файл .js и подключайте 
Вот именно. JS-скрипт должен подключать HTML, а не PHP



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
BlackRu
Дата 1.7.2014, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 14.9.2009

Репутация: нет
Всего: 4



baldina, не подумал об этом.   же js. Спасибо. 
Цитата

echo '<script type="text/javascript">setTimeout(function() {window.close()},500)</script>';

У меня так  было изначально, но мне этот вариант не по душе. Условий закрытия окна минимум три, повторять каждый раз код не хочется. 

Gold Dragon,
Цитата

 Что за такие действия выполняет PHP? после которых должен вызваться JS который закроет страницу? Страница то формируется вообще и что там?

Например, PHP  проверяет заполнены ли все поля, если поле не заполнено, окно нужно закрыть. 


C функцией понял. 

Это сообщение отредактировал(а) BlackRu - 1.7.2014, 16:35


--------------------
Удалена администрацией форума
PM MAIL WWW Skype   Вверх
baldina
Дата 1.7.2014, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



Цитата(BlackRu @  1.7.2014,  15:58 Найти цитируемый пост)
PHP  проверяет заполнены ли все поля, если поле не заполнено, окно нужно закрыть

ужос

Цитата(BlackRu @  1.7.2014,  15:58 Найти цитируемый пост)
Условий закрытия окна минимум три, повторять каждый раз код не хочется

Код

if ($a or $b or $c)
  do_something();

не?
PM MAIL   Вверх
BlackRu
Дата 1.7.2014, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 14.9.2009

Репутация: нет
Всего: 4



Цитата

ужос

Это условно. Я понимаю, что проверку заполнения можно доверить JS. И это, наверное, правильнее, чем дергать каждый раз сервер. 
Но реально поле одно. Проверятся длина введенных символов, т.е. совершенно неважно, что в нем будет, главное, чтобы было нее менее опр. количества. Я хочу как можно меньше JS, задача все минимизировать, разметку, дизайн. 
Отказ от функционала в пользу максимально минимализма. 

Совсем страшно, что при неправильно заполненной форме,  страница, с которой происходит вызов, обновляется в итоге. И данные пользователю придется вводить снова smile 

Код

if ($a or $b or $c)
  do_something();

Да, наверное лучше так.


Это сообщение отредактировал(а) BlackRu - 1.7.2014, 20:29


--------------------
Удалена администрацией форума
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0566 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.