отсрочка выполнения запроса

Kikher

Новичок
отсрочка выполнения запроса

Есть запрос из базы, который выбирает кучу картинок и с помощью хтмл тега marquee прокручивает их.
мне нужно отложить прокрутку на 5 секунд. пробовал разные вариации php функции sleep не выходит, тк останавливается все целиком а мне нужен только кусок кода, именно запрос картинок...
есть какая то возможность сделать через JavaScript... тока как..
может кто знает?
 

Kikher

Новичок
вот пример кода:
PHP:
$bt = '';

$inq = $db->query("SELECT photosid,cpu,title,image_thumb,image_alt FROM ".$basepref."_photos WHERE act='yes' ORDER BY MD5(RAND()) LIMIT 0, 15");

if($db->numrows($inq)>0){
while ($random = $db->fetchrow($inq)){
$randomimage_alt = ($random['image_alt']) ? $random['image_alt'] : '';
$randomimage = "<img align=\"right\" src=\"".$random['image_thumb']."\" alt=\"".$randomimage_alt."\">";
$randomcpu = ($workcpu==1 && $random['cpu']) ? "&amp;cpu=".$random['cpu'] : "";
$img = ($randomimage) ? '<a href="index.php?in=photos&amp;to=image&amp;id='.$random['photosid'].$randomcpu.'">'.$randomimage.'</a>' : "";
$bt.= "".$img."";
$a++;
}
return $api->siteuni($bt);
}
пробовал setTimeout повтыкать не вышло...
подозреваю что не туда или не так... исходя из чего и обратился сюда.. в инете не нашел примеров...
 

Kikher

Новичок
искал! это я понимаю что есть пхп и яваскрип!
вопрос как их скрестить?
как я писал выше нужно приостановить выполнение кода, точнее показ результата выполнения кода...
 

dimagolov

Новичок
ссылку читал? понял все? если нет, то читать пока не дойдет. как дойдет, так сформулируешь свой вопрос внятно.

что за $api и как все это отображается на клиенте?
 

Kikher

Новичок
есть система управление сайтом. даннео.
там есть блок показа случайных фотографий.
PHP:
<?php
if(!defined("DNREAD")) exit();
global $db,$basepref;

$bt = '';

//$bt.= "<br><table border=0 width=100%><tr><td  valing=\"top\" align=\"center\" >";
$inq = $db->query("SELECT photosid,cpu,title,image_thumb,image_alt FROM ".$basepref."_photos WHERE act='yes' ORDER BY MD5(RAND()) LIMIT 0, 15");

if($db->numrows($inq)>0){
while ($random = $db->fetchrow($inq)){
$randomimage_alt = ($random['image_alt']) ? $random['image_alt'] : '';
$randomimage = "<img align=\"right\" src=\"".$random['image_thumb']."\" alt=\"".$randomimage_alt."\">";
$randomcpu = ($workcpu==1 && $random['cpu']) ? "&amp;cpu=".$random['cpu'] : "";
$img = ($randomimage) ? '<a href="index.php?dn=photos&amp;to=image&amp;id='.$random['photosid'].$randomcpu.'">'.$randomimage.'</a>' : "";
$bt.= "".$img."";
$a++;
}
return $api->siteuni($bt);
}
?>
результат отображается в шаблоне
PHP:
<marquee width="395" height="190" loop="-1" hspace="5" vspace="7"  scrolldelay="30" scrollamount="2" direction="right" ><nobr>"{blockcont}"</nobr></marquee><br><br>
как я пытаюсь сделать:
PHP:
<script language="javascript">
setTimeout('<marquee width="395" height="190" loop="-1" hspace="5" vspace="7"  scrolldelay="30" scrollamount="2" direction="right" ><nobr>"{blockcont}"</nobr></marquee><br><br>', 10)
</script>
неработает
 

dimagolov

Новичок
Kikher, ты по почитал хоть где-нибудь что за ф-я setTimeout и какие аргументы она принимает и тогда не писал бы ерунды на форуме.
 

Kikher

Новичок
конечно я читал...
setTimeout
Синтаксис

timeout_id = window.setTimeout(func|code, delay)

Аргументы

func|code
Функция или строка кода для выполнения
delay
Задержка в миллисекундах, т.е 1000 это 1 секунда

Описание, примеры

В отличие от метода setInterval, setTimeout выполняет код только один раз.

В каком виде указывать первый параметр - разницы нет.
При указании строки кода - динамически создается функция func с телом code.

Следующие два вызова почти одинаковы:
Выделить все
PHP:
setTimeout('alert("прошла секунда")', 1000)
 
function sec() {
  alert("прошла секунда")
}
setTimeout(sec, 1000)
Но более правильным считается объявление функции в явном виде, например так:
PHP:
setTimeout(function() { alert(...) }, 1000)
Вызов со строкой существует для совместимости с прежними версиями javascript.
всерно что то я не догоняю..
вроде делаю по примеру..
 

A1x

Новичок
Kikher
первым параметром может идти строка кода javascript а не html как у тебя
 

Kikher

Новичок
Автор оригинала: A1x
Kikher
первым параметром может идти строка кода javascript а не html как у тебя
так у мну только один код javascript это setTimeout или что туда пихать..
спс за помощь
 

dimagolov

Новичок
Kikher, тебе надо туда пихать JS код (а лучше вызов ф-ии), которая бы выполняла бы то, что тебе нужно делать с задержкой. Раз ты получаешь какие-то данные с сервера и отображаешь их, то именно отображенеие и должно происходить в этой ф-ии. Передавать ф-ю можно просто ссылкой (ее имя как параметр)
PHP:
setTimeout(func, 1000);
но если надо передать ф-ии параметры, то таки надо делать замыкание:
PHP:
setTimeout(function () { func(param); }, 1000);
 

Kikher

Новичок
делаю так:
PHP:
<script language="javascript">
function go() { <marquee width="395" height="190" loop="-1" hspace="5" vspace="7"  scrolldelay="30" scrollamount="2" direction="right" ><nobr>"{blockcont}"</nobr></marquee><br><br> }

setTimeout(go, 1000)
</script>
ничего не появляеться...
пробую поменять в другом месте:

PHP:
<?php
if(!defined("DNREAD")) exit();
global $db,$basepref;
?>
<script language="javascript">
setTimeout( <?
$bt = '';

//$bt.= "<br><table border=0 width=100%><tr><td  valing=\"top\" align=\"center\" >";
$inq = $db->query("SELECT photosid,cpu,title,image_thumb,image_alt FROM ".$basepref."_photos WHERE act='yes' ORDER BY MD5(RAND()) LIMIT 0, 15");

if($db->numrows($inq)>0){
while ($random = $db->fetchrow($inq)){
$randomimage_alt = ($random['image_alt']) ? $random['image_alt'] : '';
$randomimage = "<img align=\"right\" src=\"".$random['image_thumb']."\" alt=\"".$randomimage_alt."\">";
$randomcpu = ($workcpu==1 && $random['cpu']) ? "&amp;cpu=".$random['cpu'] : "";
$img = ($randomimage) ? '<a href="index.php?dn=photos&amp;to=image&amp;id='.$random['photosid'].$randomcpu.'">'.$randomimage.'</a>' : "";
$bt.= "".$img."";
$a++;
}
return $api->siteuni($bt);
}
?>, 1000); </script>
результат не выполнение скрипта...
ковыряюсь дальше...
спс ребята!
 

dimagolov

Новичок
Kikher, ты вообще разницу между JS и HTML замечешь?
у елемента marquee есть методы start & stop:
http://forum.woweb.ru/topic37467.html?hl=marquee

у тебя php код генерит html, в нем есть js. так как marquee сразу лезет прокручивать (а пытаться останавливать его js в самом начале IMHO плохая идея), значит marquee надо создавать JS-ом, напихивать в него картинки (они могут быть скрытыми, скажем) и цеплять к документу. начни с того, что в начале картини будут в div с style display=hidden, а потом ты тупо создашь marquee и его innerHTML-ю присвоишь innerHTML из div-а.
 
Сверху