Создать ответ 
Скрипт таймера с проверкой данных и выводом сообщений
Автор Сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #1
Скрипт таймера с проверкой данных и выводом сообщений
Добрый вечер! Jokingly

Помогите, пожалуйста, разобраться в ситуации!

Во общем после нажатия кнопки Отправить в основной форме - скрипт выводит чуть ниже самой формы к примеру сообщение:

PHP код:
$_SESSION[send]='<p><font color="blue">Идёт проверка информации....</font></p>'

Мне нужно что бы к этому сообщению (в идеале конечно было бы круто что бы форма ответа исчезала и все действия описываемые ниже происходили вместо формы) добавилась ещё gif анимация:

[Изображение: kitchen-pro_007.gif]

(ну типа там идёт загрузка) и начал работать таймер на 3 минуты - в течение этих трёх минут идёт (примерно раз в 30 секунд проверка вот этих данных):

PHP код:
<? 
if ($level==4) {echo 'Резервный';} 
if (
$level==3) {echo 'Не подтверждённый...';} 
if (
$level==2) {echo 'Проверка прошла успешно...';}
if (
$level==1) {echo 'Резервный';}
if (
$level==0) {echo 'Резервный';} 
?>

В общем я сам проверяю в течение этих 3 минут информацию которую мне прислали и переключаю через админку level аккаунта пользователя с ($level==3) который стоит по умолчанию - на ($level==2)

и как только это произошло (скрипт раз в 30 секунд проверил данные) должна отключиться gif'ка и появляется сообщение: "Проверка прошла успешно, сейчас произойдёт перезагрузка главной страницы" и спустя секунд 10 срабатывает вот этот код:

PHP код:
top.location.reload() 
который производит перезагрузку главной страницы из фрейма.

Если же система не переключила в течение этих 3 минут ($level==3) на ($level==2) то в конце счётчика gif анимашка с полосой загрузки исчезает и выскакивает сообщение "Не подтверждённый!".

P.S. Когда я переключаю level аккаунта через админку вот этот код

PHP код:
<? 
if ($level==4) {echo 'Резервный-3';} 
if (
$level==3) {echo 'Не подтверждённый...';} 
if (
$level==2) {echo 'Проверка прошла успешно...';}
if (
$level==1) {echo 'Резервный-1';}
if (
$level==0) {echo 'Резервный-0';} 
?>

соответственно при обновлении страницы выводит ту информацию на котором находится level аккаунта. Резервный-3 отображается у не зарегистрированных пользователей! У зарегистрированного по умолчанию Не подтверждённый... у проверенного (когда я переключу статус Проверка прошла успешно....

Пробовал всевозможные таймеры на JAVA они есть и работают, но я не знаю как в этот таймер вписать все эти функции и как вообще этот JAVA таймер вписать в код скрипта комментария. Вот так вот. Sorry
(Последний раз сообщение было отредактировано 11.08.2012 в 10:25:38, отредактировал пользователь Incognito.)
10.08.2012 23:54:52
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #2
RE: Скрипт таймера на с проверкой данных и выводом сообщений
Собственно что-то получилось, но не знаю, то ли что требовалось или нет. Scratch

Добавляем код:

PHP код:
<?php
if (isset($_POST[user_text])) {
?>
<script type="text/javascript">
var timer;
var i=0;
timer = setInterval(function(){
 ++i;
 $("#block").load("123.php #block");
 if ($("#block").text()=="Проверка прошла успешно...") {
    $("#img_progress").hide();
     timer_2 = setInterval(function(){
         top.location.reload()
         },5000);
     clearInterval(timer);
     }
 if(i>=5) {
     $("#img_progress").hide();
     $("#block").hide();
     $("#block2").text("Не подтверждённый!");
     $("#block2").show();
     clearInterval(timer);
 }
}, 2000);
</script>
<?php
}
?>


Далее

PHP код:
<?php
if (isset($_POST[user_text])) {
 echo 
'<img id="img_progress" src="images/007.gif">';
}
else {
?>

Тут форма отправки сообщения

<?php
}
if (
$level==4) {$level_name="Резервный-3";}
if (
$level==3) {$level_name="Не подтверждённый...";}
if (
$level==2) {$level_name="Проверка прошла успешно...";}
if (
$level==1) {$level_name="Резервный-1";}
if (
$level==0) {$level_name="Резервный-0";}
echo 
'<div id="block">'.$level_name.'</div>';

?>
<div id="block2" style="display:none;"></div> 

P.S. В строчке $("#block").load("123.php #block"); мы обновляем блок div со странички 123.php.
11.08.2012 16:45:13
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #3
RE: Скрипт таймера на с проверкой данных и выводом сообщений
Smile В общем, что-то работает, но непонятно чего Big Grin

Я наверно не слишком чётко Вам объяснил что предполагал ))) :

В общем, давайте немного упростим задачу, а то я сразу всё вывалил, естественно ничего в этой каше не понятно...

В общем, после того как пользователь нажал кнопку "Ответить" с ответом на вопрос, включается скрипт который полностью убирает форму ответа и выводит надпись "Идёт проверка данных...", под этой надписью бежит полоска gif'ки. Примерно через 30 секунд после нажатия кнопки "Ответить" этот же скрипт проверяет, какая буква в этом коде ему доступна:


PHP код:
<? 
if ($level==3) {echo 'A';} 
if (
$level==2) {echo 'B';}
?>

Если буква "A" то срипт убирает надпись "Идёт проверка данных..." и прячет анимированную гифку - и выводит на это место надпись "ПРОВЕРКА НЕ ПРОШЛА".

Если же буква 'B' определяется скриптом из блока выше то скрипт так же убирает надпись "Идёт проверка данных..." и прячет анимированную гифку - выводит надпись "ПРОВЕРКА ПРОШЛА" и через 3 секунды перезагружает страницу.

Вот как то так! Blush

_________________________________

ЗЫ... Забыл добавить (если это имеет какое то значение) по умолчанию у всех зареганных пользователей $level==3 (то бишь "А")....

Ой щас попробую как Вы поправили...

Попробовал, форма не убирается, скрипт будто вообще молчит, анимированная полоска не появляется...
(Последний раз сообщение было отредактировано 11.08.2012 в 18:56:26, отредактировал пользователь Incognito.)
11.08.2012 18:07:59
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #4
RE: Скрипт таймера с проверкой данных и выводом сообщений
Вы можете скинуть через личку архив с Вашим файлом?

У меня примерно вот так получилось - usefulscript.ru/test.php

Вы скорее всего что-то со вторым кодом намудрили.
11.08.2012 18:58:58
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #5
RE: Скрипт таймера с проверкой данных и выводом сообщений
(11.08.2012 18:58:58)Admin писал(а):  Вы можете скинуть через личку архив с Вашим файлом?

У меня примерно вот так получилось - usefulscript.ru/test.php

Вы скорее всего что-то со вторым кодом намудрили.

Окей сейчас скину...

ОГО А СКРИПТ ТО У ВАС usefulscript.ru/test.php похоже работает как надо! (просто не досмотрел до конца)...
(Последний раз сообщение было отредактировано 11.08.2012 в 19:15:54, отредактировал пользователь Incognito.)
11.08.2012 19:06:14
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #6
RE: Скрипт таймера с проверкой данных и выводом сообщений
Удалите данный код перезагрузки странички в двух местах!!!

PHP код:
header("Location: $_SESSION[mess_url]#last");
exit; 

А то, при отправке сообщения происходит перезагрузка странички и наш скрипт не успевает загрузиться.

P.S. Кстати, Вы два раза стартуете сессию, хотя достаточно одного.
11.08.2012 19:25:28
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #7
RE: Скрипт таймера с проверкой данных и выводом сообщений
(11.08.2012 19:25:28)Admin писал(а):  Удалите данный код перезагрузки странички в двух местах!!!

PHP код:
header("Location: $_SESSION[mess_url]#last");
exit; 

А то, при отправке сообщения происходит перезагрузка странички и наш скрипт не успевает загрузиться.

P.S. Кстати, Вы два раза стартуете сессию, хотя достаточно одного.

Отлично сработало, сейчас буду проверять как будет себя вести код если реально переключить LEVEL . Кстати, не подскажете почему вот эта строка не отображается:

PHP код:
$_SESSION[send]='<p><font color="blue">Идёт проверка информации....</font></p>'

Может её нужно пониже передвинуть?
11.08.2012 19:38:31
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #8
RE: Скрипт таймера с проверкой данных и выводом сообщений
При перезагрузке странички переменная $_SESSION[send] очищается, потому ничего и не показывает.

Потом можно будет исправить.

UPS. Что-то накосячил с сообщениями и что-то куда-то делось.
11.08.2012 19:43:40
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #9
RE: Скрипт таймера с проверкой данных и выводом сообщений
ВСЁ ПРОШЛО КАК ПО МАСЛУ!!! Только он после успешной проверки начинает циклично показывать гифку и надпись "Проверка прошла успешно" - при этом ещё с каждым циклом отсылается одно и то же сообщение в админку. )))) Как бы сделать что бы страница из фрейма перезагрузила главное окно и всё?

Вот код перезагрузки:

PHP код:
top.location.reload() 

Просто его нужно куда то вставить... Smile

С надписью я справился Big Grin


Ой а она там стоит в коде эта функция... Странно, сейчас попробую фреймом это окно подключить...



Всё отлично но

PHP код:
top.location.reload() 

не срабатывает, просто выключается анимашка и всё, может этот код top.location.reload() вовсе и не походит для перезагрузки главного окна из фрейма?
(Последний раз сообщение было отредактировано 11.08.2012 в 20:06:21, отредактировал пользователь Incognito.)
11.08.2012 20:05:59
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #10
RE: Скрипт таймера с проверкой данных и выводом сообщений
Может попробовать top.document.location.reload() или window.top.location.reload(true);?
11.08.2012 20:15:56
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru