Подскажите по синтаксису
если у меня
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 не вставишь, какой должен быть синтаксис? |
Это вообще на php надо писать. Вот как-то так:
<script> <?php for ($i = 0; $i < 4; $i++){ echo "images[$i]=". $var[$i] .";\n"; } ?> </script> |
Поясню:
На 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 тоже нельзя. Вопрос - как написать правильно? |
SinX,
если у вас вообще файл с php, то цикл можно вписать на php. Или уж обходитесь без него совсем, если можете. Цикла на javascript php не увидит. |
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. |