Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нужно править JS и вправить в PHP (https://javascript.ru/forum/misc/3383-nuzhno-pravit-js-i-vpravit-v-php.html)

aforse 14.04.2009 21:10

Нужно править JS и вправить в PHP
 
Здравствуйте! Мне нужна помощь, а заключается она в том, что нужно изменить JS и заставить его работать в шаблоне.

Код:

<HTML>
  <HEAD>
      <Script type="text/JavaScript">
      function change() {
      today    = new Date()
      tday    = today.getDate()
      tmonth  = today.getMonth()+1
        if (tday==29 && tmonth==3)
            {document.logo.setAttribute('src','1.jpg')}
        else
            {document.logo.setAttribute('src','2.jpg')}}
      </Script>
  </HEAD>
  <BODY onLoad="change()">
      <img src="3.jpg" name="logo">
  </body>
</html>


Этот скрипт в зависимости от даты ставит разные картинки.

Буду перечислять проблемки. :(

1) Т.к. дат может быть много, то оператор If будет повторятся неоднократно. Возможно ли это переделать с применением оператора Case, если таков существует? (плз, в примере используйте более 2х дат)

2) Нужно изменить так скрипт, чтоб он не изменял название картинки, а стиль, т.е. есть ссылка, на фоне которой, будет стоять та или ина картинка в зависимости от даты.

Вот привожу часть кода с CSS:

Код:

h1.logo a {
        width: 290px;
        display: block;
        background: url(../images/logo.png) no-repeat;
        position: absolute;
        height: 120px;
        bottom: 0px;
        left: 350px;
}


и часть кода из шаблона:

Код:

<h1 class="logo">
      <a href="index.php" title="<?php echo $siteName; ?>">
            <span>
                  <?php echo $siteName; ?>
            </span>
      </a>
</h1>


Нужно сделать соответственные изменения в этих урывках.

Если Вам не составит труда отвечать готовым кодом, то я буду очень рад.
Заранее спасиБо.

Riim 14.04.2009 22:22

Вот одного ни как не могу понять: почему некоторым проще спросить на форуме и часами ждать ответа, вместо того чтобы найти его в любом поисковике за 30 секунд?

Kolyaj 14.04.2009 22:48

Прямо ТЗ, только че-та без размера оплаты ))

art-danilov 15.04.2009 10:54

Цитата:

Сообщение от Riim (Сообщение 16615)
Вот одного ни как не могу понять: почему некоторым проще спросить на форуме и часами ждать ответа, вместо того чтобы найти его в любом поисковике за 30 секунд?

А для чего форум существует? ) По статистике 99% обсуждаемых вопросов уже когда-то были и ответы на них есть в гугле, может форум не нужен? :)

Riim 15.04.2009 11:00

Цитата:

Сообщение от art-danilov
А для чего форум существует? ) По статистике 99% обсуждаемых вопросов уже когда-то были и ответы на них есть в гугле, может форум не нужен?

Ну, второй вопрос еще норм, а вот первому здесь явно не место. Слишком уж легко он находится в поисковиках.

aforse 15.04.2009 19:46

Мда... я на следующий день сидел искал на форумах и сайтах. Много чего нашел, а то что мне нужно - увы.

Я не спец вообще в ЯС: чет могу по примерам сделать, но достаточно геморно собрать с кучи примеров нужный скрипт. Потому и задаю вопрос на форуме в надежде, что кто-то поможЕт.

Kolyaj 15.04.2009 20:46

Цитата:

Сообщение от aforse
Потому и задаю вопрос

Задание вижу, вопроса не вижу.

aforse 16.04.2009 17:33

В общем я немножко разобрался, и у меня возник такой вопрос:
как можно совместить эту часть скрипта:
<Script type="text/JavaScript">
      function change() {
      today    = new Date()
      tday     = today.getDate()
      tmonth   = today.getMonth()+1

и этой
switch ( xxx )
         case ( ??? ) : [команда/действие]; break;
         case ( ??? ) : [команда/действие]; break;
         default : [команда/действие];
}

я не знаю как преобразовать tday и tmonth в одну переменную чтоб подставить ее вместо ( ххх ), а вместо ( ??? ) подставлять число соответствующее конкретной дать; как я выяснил єто не прокатИт:
switch ( tday, tmonth )
         case ( 31, 5 ) : [команда/действие]; break;
         case ( 13, 11 ) : [команда/действие]; break;
         default : [команда/действие];

AzriMan 17.04.2009 16:33

символом конкатенации служит значек плюса "+".
а подставить в виде (31, 5) нельзя. можно сделать ("31, 5") - тогда это будет сравнение строк.

или что вообще нужно? немного не понятен вопрос.

aforse 18.04.2009 11:09

Цитата:

Сообщение от AzriMan (Сообщение 16891)
или что вообще нужно? немного не понятен вопрос.

Мне нужно преобразовать 2е переменных в одну для подальшого использования.

Вот смотри:
<Script type="text/JavaScript">
 function change() {
  today  = new Date()
  tday   = today.getDate()
  tmonth = today.getMonth()+1

  if (tday<10) 
   {td = 0 + tday}
  else 
   {td = tday}

  if (tmonth<10) 
   {tm = 0 + tmonth}
  else 
   {tm = tmonth}

  tdtm = [здес операция с td и tm]

  switch (tdtm) {
   case (1704) : document.logo.setAttribute('src','1.jpg'); break;
   case (1804) : document.logo.setAttribute('src','2.jpg'); break;
   default : document.logo.setAttribute('src','3.jpg');
  }
 }
</Script>




У нас 18 число, 4 месяц, в этой части
if (tmonth<10) 
   {tm = 0 + tmonth}
  else 
   {tm = tmonth}

значение месяца - 4, преобразуется в 04, тогда выходит, что td = 18, а tm = 04

Дальше мне нужно преобразовать эти две переменные в одну - tdtm, так чтоб значение tdtm = 1804 (и не знаю кАк) :(


Часовой пояс GMT +3, время: 06:30.