视图
<?php
for(condition)
{
?>
<input type="hidden" name="pid" value="<?php echo $data1->id; ?>">
<a href="#" name="like" id="bttHello" >Like <i class="far fa-thumbs-up icon-4x text-default"></i></a>
<?php
}
?>
AJAX
<script type="text/javascript">
$ (document) .ready(function() {
$('[name="like"]') .click (function() {
var pid = $('[name="pid"]').val();
alert(pid);
});
});
</script>
预期结果:- 如果我点击类似锚标签的标签,它应该为我显示不同的帖子ID,并且我不想重新加载页面。
实际结果:- 当我单击不同帖子的不同标签时,它向我显示了第一个ID。
我是AJAX的新手。 预先感谢。
答案 0 :(得分:0)
您将input
和a
放在div
内,然后得到a
的兄弟姐妹,即input
<?php
for (condition) {
?>
<div>
//Your input and a tag here
</div>
<?php }
?>
<script>
$('[name="like"]').click(function () {
var input = $($(this).siblings("input")[0]); // get the input element
var value = input.val(); //value of the input
alert(value);
});
</script>
答案 1 :(得分:0)
您要设置相同的name for all the input
。
如果您不需要隐藏input
字段,则可以使用attribute
来设置和获取帖子的值。
<?php
for(condition)
{
?>
<input type="hidden" name="pid" value="<?php echo $data1->id; ?>">
<a href="#" name="like" data-pid="<?php echo $data1->id; ?>" class="select_pid" id="bttHello" >Like <i class="far fa-thumbs-up icon-4x text-default"></i></a>
<?php
}
?>
您可以使用类名来访问定位标记的属性。
<script type="text/javascript">
$(document).on('click', '.select_id', function(){
var pid = $(this).attr('data-pid');
alert(pid);
});
</script>
答案 2 :(得分:0)
视图
<?php
for($i=0;$i<count($data1);$i++)
{
?>
<input type="hidden" name="pid#<?=$i?>" value="<?php echo $data1->id; ?>">
<a href="#" name="like#<?=$i?>" id="bttHello" >Like <i class="far fa-thumbs-up icon-4x text-default"></i></a>
<?php
}
?>
AJAX
<script type="text/javascript">
$ (document) .ready(function() {
$('[name="like"]') .click (function() {
$name = $(this).split("#");
var pid = $('pid'+$name[1]).val();
alert(pid);
});
});
</script>