【发布时间】:2018-09-07 00:10:46
【问题描述】:
我想在按钮单击时更改图像。请检查我在做什么:
<div>
<?php $fetchImageArray = array();?>
<?php foreach($photos as $photo): ?>
<?php
$fetchImageArray[] = $photo;
?>
<?php /*<img src="<?= $product['image']; ?>" alt="<?= $product['title']; ?>" class="img-thumb-detailModal"> */?>
<?php if($i == 0):?>
<img src="<?=$photo; ?>" alt="<?= $product['title']; ?>"
class="img-thumb-detailModal" id="theImage"
style="width:280px;height:360px;position:absolute;">
<?php else:?>
<img src="<?=$photo; ?>" alt="<?= $product['title']; ?>"
class="img-thumb-detailModal" id="theImage"
style="width:280px;height:360px;position:absolute;visibility: hidden;">
<?php endif;?>
<?php
$i++;
endforeach;?>
<a class="stackButton sx" onclick="plusDivs(-1)">❮</a> <!-- Right Button -->
<a class="stackButton dx" onclick="plusDivs(1)">❯</a> <!-- Right Button -->
</div>
<script>
var slideIndex = 1;
var i = 0;
function plusDivs(n)
{
var i += slideIndex;
document.getElementById('theImage').src="<?=$fetchImageArray[i];?>"; //$fetchImageArray[2]
}
</script>
@$fetchImageArray[2],如果我使用 2 而不是 $fetchImageArray[i],它会更改图像,但我必须传递 $fetchImageArray[i],因为我将源路径存储在一个数组中,在这里我通过传递索引来检索它但是然后它不工作。如果它开始工作,那么代码就可以了。
请提出我做错了什么。
【问题讨论】:
-
在尝试阅读您的代码之前,我应该提一下很多新程序员在使用 PHP 时不理解的一件事...... PHP 是一个“预处理器”,它是不是很重要服务器,一旦它处理了文件,它就会将 HTML 发送到浏览器 - 在简单的 PHP 中没有双向通信 - 例如在
plusDivs函数中,var i的值与 @ 没有任何关系987654327@$fetchImageArray[i] -
您的代码虽然在某些情况下可能有效,但它是错误的,尤其是考虑到最佳实践。您应该阅读有关服务器和客户端脚本的更多信息...请这样做...
标签: javascript php jquery arrays laravel