javascript - 通过 $post 在 jquery 中发布隐藏的输入值

标签 javascript php jquery pdo

我有问题,看看我的代码:

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-温度.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]');

关于javascript - 通过 $post 在 jquery 中发布隐藏的输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35256720/

相关文章:

javascript - 将数据的json加载到vuex存储中并在组件中访问

javascript - 从单页提交 PHP 查询?

php - Laravel - 语法错误或访问冲突 : 1064 You have an error in your SQL syntax

jquery - Bxslider - 如何删除幻灯片?

jquery - 如何同时左右浮动

javascript - 链表替换和删除

javascript - AWS Elastic Beanstalk : How to change node command ? 在最近的更新中删除了容器选项?

php - 我如何实例化我的数据库对象,以便在其他类中使用?

javascript - jquery 序列化不拾取事件 Bootstrap 按钮

javascript - 我的表单提交被阻止,因为框架是沙盒的并且没有设置 'allow-forms' 权限