Как обрабатывать несколько запросов с помощью одной функции в AJAX? - PullRequest
0 голосов
/ 04 января 2019

просмотр

<?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>

Ожидаемый результат: - Если я нажму на тег привязки, он должен показать мне другой идентификатор для разных сообщений иЯ не хочу перезагружать свою страницу.

Фактический результат: - Показывает первый идентификатор, когда я нажимаю на разные похожие теги разных сообщений.

Я новичок в AJAX.Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 04 января 2019

Вы устанавливаете тот же 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>
0 голосов
/ 04 января 2019

просмотр

<?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>
0 голосов
/ 04 января 2019

вы помещаете 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...