Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Очистка параметра!


Автор: HappyMan 10.4.2005, 17:39
Попытаюсь обьяснить:

Есть 2 фрейма.
в первый загружается ПХП скрипт который сам себя решрешит каждые н секунд.
Код

echo "<META HTTP-EQUIV='refresh' content='30;'>";


также в нем стоит условие:
Код

if ($parametr1=="test") {
//делает свое грязное дело
}



из 2-го фрейма я запускаю этот скрипт вот так:
Код

top.frames["f1"].document.frames["а2"].location.href='PHPscript.php?parametr1=test';




проблема в том, что, во преки моим ожиданиям, когда в очередной раз решрешитя тот ПХПскрипт - ОН РЕФРЕШИТСЯ С ЭТИМ ПАРАМЕТРОМ! а мне нада чтобы без...
т.е вызвал этот ПХП скрипт, который находитя в 1 фрейме(С ПАРАМАТРОМ!) - сделал он свое дело, обнулил параметр и продолжает выполнять свои обязанности..........эх.. трудно обьяснить.

пробовал в теле Ифа делать такое:
Код

$parametr1="";


но не помогло... как делается??
Добавлено @ 17:44
говоря простыми словами мне нужно что бы он выполнялся 1 раз(1 раз с параметром) - когда его вызывают:
top.frames["f1"].document.frames["а2"].location.href='PHPscript.php?parametr1=test';
последующии разы - когда он сам себя рефрешит - параметр должен быть равен "" (parametr1=""), а не test...

Автор: Mal Hack 10.4.2005, 17:44
Покажи как ты рефреш делаешь.

Автор: HappyMan 10.4.2005, 17:45
думаю теперь понятно smile
Добавлено @ 17:45
Mal Hack
echo "<META HTTP-EQUIV='refresh' content='30;'>";
Добавлено @ 17:45
Mal Hack
см. выше!

Автор: Mal Hack 10.4.2005, 17:47
Понятно..
РЕФРЕШ НАДО НА PHP делать smile

header( "Location: HPscript.php" );

Автор: HappyMan 10.4.2005, 17:53
Mal Hack
а как установить интервал рефреша?
Добавлено @ 17:56
Mal Hack
кстати то что у меня там кода снизу и сверху много это ничего?

Автор: Mal Hack 10.4.2005, 18:00
Цитата(HappyMan @ 10.4.2005, 18:53)
а как установить интервал рефреша?

А в таком случае мучайся через <META>
Тогда регирект на МЕТА делай.

Автор: HappyMan 10.4.2005, 18:05
Mal Hack
угу... нада придумать как эту фишку обойти...
Добавлено @ 18:06
подожду может еще кто ответит...

Автор: Mal Hack 10.4.2005, 18:38
А почему бы не сделать так:
Код
<html>
<head>
<script language='javaScript'>

function openw()
{ location.href( 'http://example.com/PHPscript.php' ); }

</script>
<head>
<body OnLoad='javascript:setTimeout( "openw()" , 10000 );'>
...
</body>
</html>

10000 - 10 секунд

Автор: HappyMan 10.4.2005, 20:27
Mal Hack
пишет об ошибки синтаксиса на 2 строке...

Автор: Mal Hack 10.4.2005, 20:35
location.href='http://example.com/PHPscript.php';

Вроде так.

Автор: Aliance 10.4.2005, 21:24
Цитата(Mal @ 10.4.2005, 19:38)
function openw()
{ location.href( 'http://example.com/PHPscript.php' ); }

Вот тут наврал 8)

Цитата(Mal @ 10.4.2005, 21:35)
location.href='http://example.com/PHPscript.php';

Вот так правельно.

HappyMan
А параметр 'test' должен быть всего лишь один раз?

Автор: HappyMan 10.4.2005, 22:51
Aliance
не обязательно один раз... Там зависит от щелчка по кнопке.

Идея такая:
ПХПскрипт делает кое какие проверки например каждые 10 сек.
После щелчка по кнопке пользователя в др. фрейме - запускается этот же скрипт! но с параметром!(этот параметр обрабатывается. см. код выше) с этим параметром он должен выполнится всего ОДИН раз! (но если юзер еще раз щелкнет то тогда еще раз и т.д).

Проблема в том, что когда юзер щелкает по кнопке - выполняется скрипт с условием параметра, а дальше начинаются замуты: данный скрипт по своей сути рефрешит себя каждые 10 сек.! но после того как пользователь активирует(перезапустит) его(ПХПскрипт), нажав на кнопку - скрипт КАЖДЫЙ РАЗ РЕШРЕШИТСЯ С ПАРАМЕТРОМ!, а мне нада что бы каждый следующий рефреш был без этого пар-ра!
Добавлено @ 22:54
я предпологал что дело можно исправить изменив как-нить
echo "<META HTTP-EQUIV='refresh' content='30;'>";

или просто напросто обнулить параметр: $parametr1="";
но не получилось вот так вот.

Автор: Mal Hack 10.4.2005, 23:15
HappyMan
Тебе не рефреш надо, а редирект делать. См. Мой код.

Автор: Aliance 11.4.2005, 15:14
HappyMan
У тега meta типа refresh в аттрибуте content есть параметр URL, задай его и все. Но вообще это не правельно. Подгружать данные такие проще с использованием XMLHTTPRequest.

Автор: DarkLight 11.4.2005, 18:00
Все на много проще. Как написал Aliance, существует параметър url:
Код

echo "<META HTTP-EQUIV='refresh' content='30;url=PHPscript.php'>";

А еще можно юзать сессию...

Автор: Aliance 11.4.2005, 18:05
DarkLight
Зачем повторяться? Я это ж написал.
Как я понимаю человеку лучше бы подгружать данные не рефреша страницу, это делается с помощью ActiveX.

Автор: HappyMan 11.4.2005, 22:03
DarkLight
как сделат с помощью сесссии?

Aliance
XMLHTTPRequest?? поищемс..

Автор: Aliance 11.4.2005, 22:41
В разделе JavaScript много ссылок было, поищи.
Например http://iunu.net/index.php?showtopic=1830

Автор: DarkLight 12.4.2005, 01:50
HappyMan
При запуске скрипта проверяеш за наличие $_SESSION["executed"] и если его нет - проверяеш параметр и регистрируеш $_SESSION["executed"]


Aliance
Я не заметил твой пост, поетому потом отредактировал свой. Всетаки я добавил и пример, если польватель не знает куда прописать url. А ActiveX - не хорошая идея

Автор: Aliance 12.4.2005, 15:06
Цитата(DarkLight @ 12.4.2005, 02:50)
А ActiveX - не хорошая идея

ИМХО, наоборот. Это технология будущего.

Автор: Guest 12.4.2005, 15:18
Возможно, но в настоящем поддерживается только от IE... Да и безопасност у ActiveX все еще нет... Конечно потребитель сам виновать что разрешил FileSystemObject но от куда иму знат что каждий сайт будет хотет его диск уничтожить smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)