@lemonlimelike

Почему не передается переменная (ajax)?

Почему не передается переменная get?
Вот иконка на которою кликаешь и происходит ajax запрос, в иконке записан атрибут data-id и мне его нужно передать в ajax-book.php. Вот иконка
<div id="ajax-book" uk-toggle="target: #ajax" class="uk-position-top-right">
<span data-id="<?php echo $art['id']; ?>" uk-icon='icon: bookmark; ratio: 2'  title='Добавить в залкадки <?php echo $art['id']; ?>'></span>
</div>


Мне сказали что вот этот кусочек кода должен передать переменную get, но в обработчике я прописываю vard_dump($_GET); так там приходит пустой массив array(0) Вот этот кусочек
data: {
            video_id:$(this).data("id")
        }


А это весь ajax запрос
$(document).on('click', '#ajax-book', function(){
            $.ajax({
        url: 'inc/ajax-book.php',
        method: 'GET',
        dataType : "json",
        data: {
            video_id:$(this).data("id")
        },
        success: function(data) {
            console.log(data);
            data: {video_id:$(this).data(id)}
        }
        });
    });
  • Вопрос задан
  • 561 просмотр
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
как я уже написал в другом вопросе - дата аттрибут надо ставить в то тэлемент по которому у вас навешан евент, это див id="ajax-book", тогда в сработавшую функцию будет передан объект этого дива с соответствующим дата атрибутом.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
tomgif
@tomgif
Веб-разработчик
$(this).data("id")

Внутри ajax-функции свой this. $(this).data("id") - пустой.

Перед запросом добавьте переменную

$(document).on('click', '#ajax-book', function(){

  var self = this;

     $.ajax({
        url: 'inc/ajax-book.php',
        method: 'GET',
        dataType : "json",
        data: {
            video_id:$(self).data("id")
        },
        success: function(data) {
            console.log(data);
            data: {video_id:$(self).data(id)}
        }
        });
    });
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы