因此,我试图将我的购物车和我隐藏的贝宝形式同步,并为了实现这一目标而勉强。
当我向购物车添加商品时,jquery通过在我的表格中添加一行并在我的PayPal表格中插入一行来更新购物车。
购物车表的示例:
<td>
<td style="width: 70%">product 1</td>
<td style="width: 15%">£1.99</td>
<td style="text-align:center;">
<a class="del" href="#" data-rowid="row_id_1">X</a>
</td>
<td>
<td style="width: 70%">product 4</td>
<td style="width: 15%">£1.99</td>
<td style="text-align:center;">
<a class="del" href="#" data-rowid="row_id_4">X</a>
</td>
但是当我删除一个项目时,它会将我的paypal表单从sych中删除,例如,请参阅下面的 paypal表单
<input type="hidden" name="business" value="paypaltest@me.co.uk ">
<input class="row_id_1" type="hidden" name="item_name_1" value="product 1">
<input class="row_id_1" type="hidden" name="amount_1" value="1.99">
<input class="row_id_1" type="hidden" name="item_number_1" value="1">
<input class="row_id_4" type="hidden" name="item_name_4" value="product 4">
<input class="row_id_4" type="hidden" name="amount_4" value="2.99">
<input class="row_id_4" type="hidden" name="item_number_4" value="1">
Paypal不会接受上述内容,因为row_id_2&amp; row_id_3丢失了。什么是循环这些并同步的最佳方式?将 .load()表单是一种更好的方法吗?
答案 0 :(得分:0)
不确定您是否仍在寻找答案。但我当时遇到了你的问题。在没有找到答案后,我写了这个......
// REFACTOR PAYPAL FORM BASED ON ITEM BEING REMOVED
function refactorPaypalForm(keyPosition){
var refactorValue = keyPosition+1;
var newValue = keyPosition;
while( $("#item_name_"+refactorValue).length ){
$("#item_name_"+refactorValue).attr("name", "item_name_"+newValue).attr("id", "item_name_"+newValue);
$("#amount_"+refactorValue).attr("name", "amount_"+newValue).attr("id", "amount_"+newValue);
newValue = refactorValue;
refactorValue++;
}
}
如果您调用该函数并传入&#39;键,这似乎有效。您正在删除的值(即传入3,它将删除item_name_3,然后将_4重命名为_3,_5重命名为_4等)。您需要为表单元素指定&#34; item_name_x&#34;和&#34; amount_x&#34;虽然它以目前的形式工作,但我确定你可以调整它以适应名称。 : - )