Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   как отправить товар в корзину с помощью ajax (https://javascript.ru/forum/jquery/69078-kak-otpravit-tovar-v-korzinu-s-pomoshhyu-ajax.html)

daimon0482 28.05.2017 16:36

как отправить товар в корзину с помощью ajax
 
Здравствуйте есть такая ссылка :
<a href="korzina.php?id=<?=$row["id"]?>">
она работает только каждый рас выкидывает на саму корзину. Подскажите как отправить данные из ссылке по адресу с помощью ajax чтобы самим остаться на месте?

laimas 28.05.2017 21:11

jQuery:

<a class="addcart" href="korzina.php?id=<?=$row["id"]?>">


$(function() {
    $('a.addcart').click(function(e) {
        e.preventDefault();
        $('#cart').load(this.href) //ответ сервера будет помещен в #cart
    })
})

daimon0482 28.05.2017 21:34

laimas, при нажатии на ссылку перехожу в корзину как запретить переход?

laimas 28.05.2017 21:36

Цитата:

Сообщение от daimon0482
при нажатии на ссылку перехожу в корзину

Этого не будет, ибо e.preventDefault(); отменяет действие по умолчанию, то есть переход ссылке. jQuery не подключена значит.

daimon0482 28.05.2017 21:40

нашел такой код но что то здесь не правильно подскажите что тут не хватает.
$("#price").click( function() {
 $.ajax({
  type: 'POST',
  url: 'korzina.php',
  data: '',
  success: function(data){
    $('.results').html(data);
  }
});
});

daimon0482 28.05.2017 21:50

в хроме js включен проверял. а ссылка все равно работает

laimas 28.05.2017 21:50

Цитата:

Сообщение от daimon0482
что тут не хватает

Понимания. $("#price") - это селектор по идентификатору, а идентификатор есть уникальное значение. У вас же на странице может быть много товаров, а значит и кнопок/ссылок добавления их в корзину. То есть нельзя всем этим кнопкам назначить один и тот же идентификатор - обработчик получит только первая из них.

Я же пример привел - ссылкам добавляется класс addcart, которым добавляется обработчик, который отменяет переход на страницу и посылает Ajax запрос (метод .load()). Не гадайте на кофейной гуще, пример показанный работать будет. Если приведенный код использовать, то сначала определиться с селектором и определением ID, которое нужно будет передать в data:.

laimas 28.05.2017 21:51

Цитата:

Сообщение от daimon0482
в хроме js включен проверял

jOuery, это фреймворк на JS, а не сам JS, подключать его надо, например:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

daimon0482 28.05.2017 21:57

да я ваш пример на class="addcart" проверял все равно ссылка срабатывает на переход в корзине.

daimon0482 28.05.2017 22:00

включил ваш пример и исчезли кнопки

laimas 28.05.2017 22:02

Цитата:

Сообщение от daimon0482
все равно ссылка срабатывает на переход в корзине

вы в чем-то допускаете ошибку, все будет работать, запускайте здесь, на странице:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
</head>
<body>
<a class="addcart" href="korzina.php?id=12">Test</a>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script> 
$(function() {
    $('a.addcart').click(function(e) {
        e.preventDefault();
        alert(this.href) //для теста на странице форума
        //$('#cart').load(this.href) //ответ сервера будет помещен в #cart
    })
});
</script>
</body>
</html>


Есть переход?

daimon0482 28.05.2017 22:05

помогите пожалуйста довести до ума этот ajax код.
$(".price").click( function() {
 $.ajax({
  type: 'POST',
  url: 'korzina.php',
  data: '',
  success: function(data){
    $('.results').html(data);
  }
});
});

daimon0482 28.05.2017 22:17

переход уже нет но сплывает оповещения просит подтвердить действия. и не передается id в корзину.

laimas 28.05.2017 22:20

Ну если ссылки так и остались, и price, это их класс, то:

$(function() {
    $(".price").click( function(e) {
        e.preventDefault();
        var a = this;
        $.ajax({
            type: 'POST',
            url: 'korzina.php',
            data: a.search.substr(1),
            success: function(data){
                $('.results').html(data);
            }
        });
    });
});

daimon0482 28.05.2017 23:07

нет не передается id в корзину

laimas 28.05.2017 23:25

Проверяйте свои ошибки, данный клиентский таковых не имеет (если соответствует все вашим ссылкам).


Часовой пояс GMT +3, время: 09:42.