Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: JavaScript : список урлов для галереи
цитата
07/03/11 в 12:02
 Vyacheslav
Есть скрипт на php, который динамически генерит пиксовую галерею с произвольным кол-вом фоток. Т.е. фактически есть список:

http://url/imgXXX.jpg
http://url/imgYYY.jpg
http://url/imgZZZ.jpg
...
http://url/imgNNN.jpg

Как организовать на JavaScript скрипт, который может схавать этот лист и потом можно будет на галерее содать 2 кнопки PreviousPicture, NextPicture?? При на жатии на которые будет осуществляться переход по этому списку.
цитата
07/03/11 в 14:39
 Yacc
Код:
<div>
   <img id="gi" src=""/>
   <input type="button" value="Prev" onclick="try{cur = cur > 0 ? cur - 1 : urls.length - 1; document.getElementById('gi').src = urls[cur];} catch(e){}";/>
   <input type="button" value="Next" onclick="try{cur = cur < urls.length - 1 ? cur + 1 : 0; document.getElementById('gi').src = urls[cur];} catch(e){}";/>
   <script>
   <?php
   $arr = array( 'a.jpg', 'b.jpg', 'c.jpg' );
   echo 'var urls = new Array( '.implode( ",", array_map( create_function( '$u', 'return \'"\'.$u.\'"\';' ), $arr ) ).' );';
   ?>
   var cur = 0;
   document.getElementById('gi').src = urls[cur];
   </script>
</div>
цитата
07/03/11 в 17:31
 Vyacheslav
Ок
А в случае со Smarty (без php)..
Есть возможность например создать массив:

Код:
<script type=JavaScript>
var myArray = new Array()
{{foreach name=data item=item from=$data}}
myArray[{{$item.id}}] = '{{$item.url}}'
{{/foreach}}
</script>

Где {{$item.id}} - счётчик от 0 до колва урлов пикс, {{$item.url}} - собственно сами урлы..

И как-то теперь организовать "назад", "вперёд" по массиву myArray..
цитата
07/03/11 в 18:04
 Yacc
К сожалению (или к счастью icon_smile.gif ) я понятия не имею, что такое смарти.

Наcколько я могу судить вот так должно работать:

Код:
<div>
   <img id="gi" src=""/>
   <input type="button" value="Prev" onclick="try{cur = cur > 0 ? cur - 1 : urls.length - 1; document.getElementById('gi').src = urls[cur];} catch(e){}";/>
   <input type="button" value="Next" onclick="try{cur = cur < urls.length - 1 ? cur + 1 : 0; document.getElementById('gi').src = urls[cur];} catch(e){}";/>
   <script>
      var urls = new Array();
      {{foreach name=data item=item from=$data}}
      urls.push( '{{$item.url}}' );
      {{/foreach}}
   var cur = 0;
   document.getElementById('gi').src = urls[cur];
   </script>
</div>


Я сменил название массива с myArray на urls.
цитата
08/03/11 в 20:28
 Vyacheslav
Yacc: Шаришь!
Спасибо! smail54.gif


Эта страница в полной версии