如何在AJAX中的一个功能的帮助下处理多个请求?

时间:2019-01-04 05:34:03

标签: php ajax codeigniter-3

视图

<?php 
for(condition)
{
?>
<input type="hidden" name="pid" value="<?php echo $data1->id; ?>">
<a href="#" name="like" id="bttHello" >Like&nbsp;<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的新手。 预先感谢。

3 个答案:

答案 0 :(得分:0)

您将inputa放在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&nbsp;<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&nbsp;<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>