Подскажите по синтаксису
если у меня
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, время: 00:34. |