我有问题,看看我的代码:
Html + php:
<?php foreach($result as $row) { ?>
<div class="col-md-3">
<input type="hidden" name="albumid" value="<?php echo $row['id']; ?>">
<a href="#?albumid=<?php echo $row['album_id']; ?>" class="thumbnail"id="this1">
<img src="images/<?php echo $row['album_thumbnail']; ?>.jpg" alt="Pulpit Rock" style="width:245px;height:200px;">
<p align="center" style="margin:0px;"><?php echo $row['album_description']; ?></p>
</a>
</div>
<?php } ?
请注意,此$result来自 sql, pdo 查询Jquery:
$(document).ready(function(){
$('a#this1').click(function(){
$("div.albums").hide();
$("div.pics").show();
var albumid = $("input[name=albumid]").val();
$.post( "gallery-pics-temp.php",{ name: "Zara", albumid: albumid },function(data){
$('p#myid').text(data);
});
});
});
当我单击链接(ID 为"this1"(时,jquery 中的 var albumid 始终具有相同的值,尽管通过 foreach 每个循环/行都有不同的 albumid,但只有第一个 albumid 的值进入"gallery-pics-temp.php"。请注意,foreach 循环工作正常并且有不同的值,但问题只在于 jquery,即它发送相同的隐藏输入值 ($row['id'](
首先,你使用的是 #this1(id(而不是类名。
input[name=albumid] 还会读取第一个元素,而不是与单击的按钮相关的元素。
要查找专辑ID,您需要根据单击的按钮进行搜索,例如
var albumid = $(this).siblings('input[name=albumid]')
或
var albumid = $(this).prev('input[name=albumid]');
如果不确定 HTML 的格式是否保持不变,可以使用以下代码:
var albumid = $(this).parents('div').find('input[name=albumid]');