Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Подскажите по синтаксису (https://javascript.ru/forum/dom-window/17441-podskazhite-po-sintaksisu.html)

SinX 19.05.2011 14:48

Подскажите по синтаксису
 
если у меня

images[1].src=<?=$var[1];?>
images[2].src=<?=$var[2];?>
images[3].src=<?=$var[3];?>

и т.д.,
то как правильно написать цикл
<script>
 for (i=1,i<4, i++)
{

images[i]="<?=$var[." + i + ".];?>

}
</script>

Явно вставить переменную js в php - php не понимает, в $i какое-нибудь
значение i из JS не вставишь, какой должен быть синтаксис?

kostr 19.05.2011 15:18

Это вообще на php надо писать. Вот как-то так:
<script>
<?php

for ($i = 0; $i < 4; $i++){
 echo "images[$i]=". $var[$i] .";\n";
}

?>
</script>

SinX 20.05.2011 00:07

Поясню:
На j-script написан слайдер, и присвоение переменных php в массив images делается для смены картинок слайдера. На php слайдер работать не будет вообще, разве что обновится при перезагрузке страницы. Но имена файлов картинок берутся из базы с помощью sql-запроса. Поэтому элементам images присваиваются значения переменных php

<? sql="select filename from base...":

...

...?>
<table>
<tr>
<? for (i=0, i<N, i++)
{ ?>
<td><img src="<?=$file[$i];?>" name="p<?=$i;?" ></td>
<? } ?>

<script>
Images ArraY(N);
Images[0].src="<?=$file[0];?>";
Images[1].src="<?=$file[1];?>";
....
Images[N].src="<?=$file[N];?>";


count=0
function preload()
{
for (count=0; count<N, count++)
{
document.p0.src=images(count).src;
.............................

   }
}
</script>

Для того, чтобы не писать вручную N раз присвоение, хочется написать цикл. На js.

Можно написать цикл без php, для постоянных картинок:

for (i=0;i<3;i++)
{
Images.src="p"+i+".jpg";
}


Но для php плюсики не напишешь, и передать дж-с переменную цикла внуть php тоже нельзя.
Вопрос - как написать правильно?

kostr 20.05.2011 15:50

SinX,
если у вас вообще файл с php, то цикл можно вписать на php. Или уж обходитесь без него совсем, если можете. Цикла на javascript php не увидит.

poorking 20.05.2011 21:38

SinX,
массив собираете в php
$images = new Array;
for($i=1; $i<4; $i++){
	$images[$i] = $var[$i];
}



потом
echo "<script type = \"text/javascript\">";
echo "var images = eval("."(".json_encode($images).")".");";
echo "</script>";


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