Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.04.2010, 14:22
Новичок на форуме
Отправить личное сообщение для galap Посмотреть профиль Найти все сообщения от galap
 
Регистрация: 09.04.2010
Сообщений: 5

Как поместить javascript в php цикл do{} while()
Вот такой вот код:
$actionr = mysql_query("SELECT name, description, newprice, oldprice, time FROM action");
			$action = mysql_fetch_array ($actionr);
			$count = "countdown";
			$counter = "counter";
			do {
              echo "<table width='100%' height='182' border='0' cellpadding='10' cellspacing='0'>
          <tr>
            <td valign='top' class='kartinka'><img src='img/sapogs.jpg' width='135' height='135' align='left' class='kartinka'>
			<p><strong>$action[name]</strong>, $action[description]</p><p>За <span class='redtext'><strong>$action[newprice]</strong></span> рублей вместо $action[oldprice] рублей.</p>
			  
			<div>
			<DIV align='center' id='$count'></DIV>";
			
print "<script type=\"text/javascript\">
       D = new Date();
time_diff = (Date.UTC($action[time]) - D.getTime()) / 1000;
  
        function $count() {      
           work_number = time_diff--;
           days = Math.floor(work_number / 86400);      
           work_number -= days * 86400;
           hours = Math.floor(work_number / 3600);
           work_number -= hours * 3600;
           minutes = Math.floor(work_number / 60);
           work_number -= minutes * 60;
           seconds = Math.floor(work_number % 60);
           days = (days < 10) ? \"0\"+days : days;
           hours = (hours < 10) ? \"0\"+hours : hours;
           minutes = (minutes < 10) ? \"0\"+minutes : minutes;
           seconds = (seconds < 10) ? \"0\"+seconds : seconds;
           values = [
              declOfNum(days, [\"день\", \"дня\", \"дней\"]), 
              declOfNum(hours, [\"час\", \"часа\", \"часов\"]), 
              declOfNum(minutes, [\"минута\", \"минуты\", \"минут\"]), 
              declOfNum(seconds, [\"секунда\", \"секунды\", \"секунд\"])
           ];
           document.getElementById('$counter').innerHTML =  values.join(\" \") + \".\";      
        }

        function declOfNum(number, titles) {
           cases = [2, 0, 1, 1, 1, 2];
           return \"<b>\" + number + \"</b> \" + titles[ (number%100>4 && number%100<20)? 2 : cases[Math.min(number%10, 5)] ];
        }
     </script>";
	 echo "<body onload='$count()'>
     <div id='wrapper'>
        осталось
        <div id='$counter'></div>
     </div>";

    print "<script type=\"text/javascript\">
        setInterval(\"$count()\", 1000);
     </script>";
     echo "</div>
			</td>
          </tr>
        </table>	
<p></p>";
$count = "countdowntwo";
$counter = "countertwo";
}
while ($action = mysql_fetch_array ($actionr));


Первый блок работает второй нет, ? - подскажите как сделать чтоб заработал второй, (в базе всего две записи), а также третий и т.д.

P.S. Только умоляю, не отвечайте терминами и заумными словечками понятными только программистам, они и без Вас все хорошо знают.
Ответить с цитированием
  #2 (permalink)  
Старый 09.04.2010, 14:32
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

для общего ознакомления
Сообщение от galap
P.S. Только умоляю, не отвечайте терминами и заумными словечками понятными только программистам, они и без Вас все хорошо знают.
а как отвечать?
если вы не программист, и не в теме, то для вас есть раздел "работа" форума.
для отладки JS-используйте firebug
также советую глянутьна исхдны код страницы, и посмотреть сгенерировалось там именно то, что вам нужно, в принципе
Ответить с цитированием
  #3 (permalink)  
Старый 09.04.2010, 14:39
Новичок на форуме
Отправить личное сообщение для galap Посмотреть профиль Найти все сообщения от galap
 
Регистрация: 09.04.2010
Сообщений: 5

Оказывается, в принципе все работает (не хватило терпения подождать секунду), второй блок появляется с задержкой в секунду.

Но, дело в том что оба блока отсчитывают одинаковое время , хотя дата у них разная.

P.S. Я всегда думал, что форумы нужны для того чтобы те кто в теме помогали тем кто еще не в теме, потомучто те кто в теме не задают вопросы а отвечают на них (Если бы я был совсем не в теме то не задавал бы подобных вопросов). Просто помочь не влазяя в мою личную жизнь, можно?
Ответить с цитированием
  #4 (permalink)  
Старый 09.04.2010, 14:53
Новичок на форуме
Отправить личное сообщение для galap Посмотреть профиль Найти все сообщения от galap
 
Регистрация: 09.04.2010
Сообщений: 5

Всем спасибо, разобрался.
Для тех кто не в теме:

<?php
$actionr = mysql_query("SELECT name, description, newprice, oldprice, time FROM action");
$action = mysql_fetch_array ($actionr);
$count = "countdown";
$counter = "counter";
$date = "D";
$time = "time";
do {
echo "<table width='100%' height='182' border='0' cellpadding='10' cellspacing='0'>
<tr>
<td valign='top' class='kartinka'><img src='img/sapogs.jpg' width='135' height='135' align='left' class='kartinka'>
<p><strong>$action[name]</strong>, $action[description]</p><p>За <span class='redtext'><strong>$action[newprice]</strong></span> рублей вместо $action[oldprice] рублей.</p>

<div>
<DIV align='center' id='$count'></DIV>";

print "<script type=\"text/javascript\">
$date = new Date();
$time = (Date.UTC($action[time]) - $date.getTime()) / 1000;

function $count() {
work_number = $time--;
days = Math.floor(work_number / 86400);
work_number -= days * 86400;
hours = Math.floor(work_number / 3600);
work_number -= hours * 3600;
minutes = Math.floor(work_number / 60);
work_number -= minutes * 60;
seconds = Math.floor(work_number % 60);
days = (days < 10) ? \"0\"+days : days;
hours = (hours < 10) ? \"0\"+hours : hours;
minutes = (minutes < 10) ? \"0\"+minutes : minutes;
seconds = (seconds < 10) ? \"0\"+seconds : seconds;
values = [
declOfNum(days, [\"день\", \"дня\", \"дней\"]),
declOfNum(hours, [\"час\", \"часа\", \"часов\"]),
declOfNum(minutes, [\"минута\", \"минуты\", \"минут\"]),
declOfNum(seconds, [\"секунда\", \"секунды\", \"секунд\"])
];
document.getElementById('$counter').innerHTML = values.join(\" \") + \".\";
}

function declOfNum(number, titles) {
cases = [2, 0, 1, 1, 1, 2];
return \"<b>\" + number + \"</b> \" + titles[ (number%100>4 && number%100<20)? 2 : cases[Math.min(number%10, 5)] ];
}
</script>";
echo "<body onload='$count()'>
<div id='wrapper'>
осталось
<div id='$counter'></div>
</div>";

print "<script type=\"text/javascript\">
setInterval(\"$count()\", 1000);
</script>";
echo "</div>
</td>
</tr>
</table>
<p></p>";
$count = "countdowntwo";
$counter = "countertwo";
$date = "T";
$time = "timer";
}
while ($action = mysql_fetch_array ($actionr));
?>
Ответить с цитированием
  #5 (permalink)  
Старый 09.04.2010, 14:57
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от galap
P.S. Я всегда думал, что форумы нужны для того чтобы те кто в теме помогали тем кто еще не в теме, потомучто те кто в теме не задают вопросы а отвечают на них (Если бы я был совсем не в теме то не задавал бы подобных вопросов). Просто помочь не влазяя в мою личную жизнь, можно?
Вы ошибались. http://phpclub.ru/faq/WhyForum
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как нарисовать график на javascript? Бобр Общие вопросы Javascript 21 30.03.2014 17:27
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как сделать постоянную проверку на javascript alb Общие вопросы Javascript 18 09.01.2010 14:05
javascript и php (Вопрос) Гауляйтер Общие вопросы Javascript 3 06.05.2009 09:23
как php перменной присвоить значение переменной javascript? php_vasia Элементы интерфейса 4 04.05.2009 14:33