2013-01-03 2 views
1

У меня есть корзина покупок. Моя корзина имеет удалить кнопки против каждого пункта следующим образом:jQuery Ajax Удалить специфический предмет из корзины

.... 
<tr style="text-size:0.8em"> 
    <td>Music CD</td><td>23</td><td>£51.89</td> 
    <td> 
     <form method="post" action="" class="remove"> 
     <input type="hidden" name="pid" value="1" /> 
     <input type="image" src="http://.../.../delete.png" name="remove" class="remove" value="x" text="x"/> 
     </form> 
    </td> 
</tr> 
<tr style="text-size:0.8em"> 
    <td>DVD</td><td>5</td><td>£12.23</td> 
    <td> 
     <form method="post" action="" class="remove"> 
     <input type="hidden" name="pid" value="2" /> 
     <input type="image" src="http://.../.../delete.png" name="remove" class="remove" value="x" text="x"/> 
     </form> 
    </td> 
</tr> 
.... 

И JQuery

jQuery('.remove').submit(function(data) { 
    // Validate & remove item from cart stuff 
    return false; 
}); 

Моя форма работы, публикуя форму, однако я хотел бы ajaxify его.

Как сообщить jQuery, какой pid удалить из корзины?

Как изменить html & js так, чтобы скрипт jQuery знал, какой конкретный продукт (pid) удалить из корзины?

Для большей ясности ... Вы увидите, что в этом примере есть две формы. Если в корзине будет больше предметов, будет больше форм ... так как я могу сказать jQuery, какая форма была отправлена, когда единственная разница между формами - pid?

+0

Не видя файл, который вы отправляете, кому-то будет сложно ответить на этот вопрос. Какое программное обеспечение вы используете? И на какой платформе? – Zak

+0

Благодарим за отзыв. Но я не согласен. Это не имеет никакого отношения к тому, что я представляю. Все, что я хочу сделать, это как-то сказать jQuery, который pid удалить из корзины. Я могу сделать все остальное. Спасибо – Gravy

+0

My take: обрабатывать событие 'click' для кнопки« удалить »вместо события' submit' для формы. Теперь, где ваши вещи сохраняются? –

ответ

2

Приятно знать, что вы решили свою проблему, Gravy.

Вот некоторые альтернативные используя предыдущую разметку (один размещен в вашем вопросе):

$(".remove").click(function(e) { 
    pid = $(this).siblings("#name").attr("value"); 
    // You got the pid. Continue by removing this pid from your cart 
}); 

или

$(".remove").click(function(e) { 
    pid = $(this).siblings("input:hidden").attr("value"); 
    // You got the pid. Continue by removing this pid from your cart 
}); 

Таким образом, вы не должны загромождать кнопку удаления.

PS: Извините за поздний ответ. Я проверял несколько ссылок на ответ. :)

+0

Спасибо Амир ... Не волнуйся, я буду тебе благодарен. :) – Gravy

+0

Спасибо за кредит, Gravy. Серьезно, хотя, я просто пытался помочь. :) –

0

Проблема решена благодаря Amir:

jQuery('.remove').click(function(data) { 
    var pid = jQuery(this).attr('name'); 
    alert(pid); 
    return false; 
}); 

изменения HTML

<input type="image" src="http://.../.../delete.png" name="1" class="remove" /> 

Я поставил ИДП продукта с именем кнопки удаления.

Смежные вопросы