Задать вопрос

Как переделать ссылку в ajax запрос?

В магазине у каждого товара есть кнопка "Купить" имеющая ссылку:
<a class="btn btn-mini" href="javascript:void(0)" onclick="javascript: add2cart('<?= $hash ?>', '<?= $part['buy_url'] ?>');" rel="nofollow">

Для всех товаров $part['buy_url'] (вдруг!)разный.
Нужно переделать её, чтобы она отправляла запрос страницы через аякс примерно так:
$('a[rel*="add2cart"]').click(                
                function(){
                    $.ajax({                      
                      type: "GET",
                      url: $(this).attr("rel"),
                      dataType: "html",
                      success: function(out){
                                $("#bid").html(getBasketHTML(out));
                      }  });   }   );

Рассмотрю любые варианты.
Функция add2cart выглядит так:
function add2cart(hash, url)
{   var qi = $('input[rel="quantity"][data-part-hash="' + hash + '"]');
    var quantity = parseInt(qi.val());
    var quantity = qi.val(), mf = Math.max(1, parseInt(qi.data('step')));
    if (quantity < mf || (quantity % mf > 0)) {
        if (!confirm(langs['SEARCH_QUANTITY_SIZE_CONFIRM'] + ' (' + mf + ').')) {
            return false;
     }  }
    url = url + '&quantity=' + quantity;
    document.location = url; }
  • Вопрос задан
  • 2687 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Побуду Вангой
<a class="btn btn-mini" href="#" data-hash="<?=$hash?>" data-buy-url="<?=$part['buy_url']?>" class="buy-link" rel="nofollow">


$('.buy-link').click(function(){
                    var self = $(this)
                    $.ajax({                      
                      type: "GET",
                      url: add2cart(self.attr("data-buy-url"),self.attr("data-hash")),
                      dataType: "html",
                      success: function(out){
                                $("#bid").html(getBasketHTML(out));
                      } 
                      });  
                      return false;
 });
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vdem
Ну, во-первых, вот таким образом Вы ссылку не найдете:
$('a[rel*="add2cart"]')
поскольку атрибут rel у Вас установлен в nofollow, а не add2cart.
Вероятнее всего проверять нужно атрибут onclick.
Дальше - выгрызаете из атрибута значения $hash и $part['buy_url'].
Дальше - делаете на сервере страницу, которая будет обрабатывать запрос.
Было бы неплохо увидеть код функции add2cart().
Ответ написан
Ваш ответ на вопрос

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

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