mrbagfreeman
@mrbagfreeman
Начинающий быдло кодер

Не работает функция ajax. Как быть?

В Yii для кнопки написал вот такую функцию:
$('.add_to_cart').on('click', function (e) {
            e.preventDefault();
            var id = $(this).data('id');
            $.ajax({
                url: '/cart/add',
                data: {id: id},
                type: 'GET',
                success: function(res){
                    if (!res) aler('ошибка!');
                    console.log(res);
                    //showCart(res);
                },
                error: function(){
                    alert('Ошибка');
                }
            });
        });

Которая отменяет переход по ссылке, а в консоли выводит значение id.
Сама кнопка:
<a class="add-to-cart"  data-id="<?= $product->id?>"   href="<?= \yii\helpers\Url::to(['/cart/add', 'id' => $product->id])?>"><button  class="btn btn-choose">Выбрать</button></a>


Но после нажатия она все равно проходит по ссылке на другую страницу.
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
Поправьте название класса. В JS у Вас "add_to_cart", а на кнопке "add-to-cart".
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
villiwalla
@villiwalla
HTML-верстка
Тебя не смущает что алерта нету и в консоли ничего нету? Смотри на то как отделяешь слова именуя класс и передовая его в селектор jq.
Ответ написан
Комментировать
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Все должно работать https://jsfiddle.net/a49f3nzu/ смотрите консоль на наличие ошибок.
Или же, ваш код выполняется до того, как на странице появляется ссылка, попробуйте завернуть в $(function() { })

$(function() {
$('.add_to_cart').on('click', function (e) {
            e.preventDefault();
            var id = $(this).data('id');
            $.ajax({
                url: '/cart/add',
                data: {id: id},
                type: 'GET',
                success: function(res){
                    if (!res) aler('ошибка!');
                    console.log(res);
                    //showCart(res);
                },
                error: function(){
                    alert('Ошибка');
                }
            });
        });
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час