【发布时间】:2014-03-23 02:49:42
【问题描述】:
我正在使用下面的代码让用户从表单中的 PHP 图像数组中选择缩略图。我试图找出一种方法,以便当用户提交此表单时,当前显示的图像将通过表单传递到 PHP Post。我不知道该怎么做。从逻辑上讲,如果 image[1] 处于活动状态,我想将该 url 发送到表单。目前,PHP var $knoteImgs[] 是完整的标签,如果我需要将 img 标签放在 JS 中,获取 URL 可能会更干净。
<script type="text/javascript">
var image = new Array(3)
image[1]="<? echo $knoteImgs[0]; ?>"
image[2]="<? echo $knoteImgs[1]; ?>"
image[3]="<? echo $knoteImgs[2]; ?>"
var num = 1;
document.getElementById('next').addEventListener('click', function(galleryNext){
num=num+1
if (num==4)
{num=1}
document.getElementById('knoteImg').src=image[num];
});
document.getElementById('back').addEventListener('click', function(galleryPrevious){
num=num-1
if (num==0)
{num=3}
document.getElementById('knoteImg').src=image[num];
});
</script>
编辑:如果有人甚至可以将我链接到一些有用的相关帖子。不知道要搜索什么。
编辑了我的原始帖子以显示工作代码: 感谢@GaryHayes 和@Brad 的帮助!
<script type="text/javascript">
var image = <?php echo json_encode($knoteImgs); ?>;
var tot = image.length;
var c = 0; // current image (array key index)
function loadImage(){
$("<img/>").attr({src:image[c], id:"knoteImg", class:"img-thumbnail"}).load(function() {
$('#thumbnail').html( this );
});
}
loadImage(); // load 1 image
$('#prev, #next').click(function(){
id= this.id==='next' ? c++ : c-- ;
c= c==-1 ? tot-1 : c%tot ;
loadImage();
});
function getimage() {
document.getElementById('currentimage').value = document.getElementById('knoteImg').src;
var thumbnail = document.getElementById('currentimage');
alert(thumbnail.value);
}
</script>
alert(thumbnail.value); 被触发:
<input type="hidden" id="currentimage" name="currentimage" />
<input type="submit" onclick="getimage();" value="Submit" />
【问题讨论】:
-
你意识到 addEventListener 中回调函数的参数是事件,而不是画廊?
-
小心...您没有转义数据以便在 JavaScript 中正确使用。请改用
var image = <?php json_encode($knoteImgs); ?>;。 -
@adeneo 我不确定我是否遵循 100%。我有一个链接可以在图像中向前和向后切换。
-
在表单中放置一个隐藏的输入字段,并在提交按钮按下时应用图像信息,就在处理之前。效果很好,我一直都这样做。
-
@GaryHayes 这就是我想要做的。我可以计算出隐藏的输入,但我不确定如何从 JS 传递关于当前显示的图像的信息?
标签: javascript php jquery