【发布时间】:2011-09-12 06:30:04
【问题描述】:
我正在尝试在我的页面上集成一个贝宝添加到购物车按钮。当每个 paypal 添加时,包含的表单似乎工作正常.. 但是当我使用 ajax 序列化并提交表单时,它给了我一个 302 错误并且永远不会填充 Div。
从技术上讲,我试图避免在有人单击“添加到购物车”按钮时重新加载页面或重定向/打开新页面,并认为我可以使用 Ajax 解决这个问题。显然,由于 ajax 调用无法发布或加载重定向页面,重定向会扼杀这种可能性?
任何指针都会受到赞赏。
这是我的代码:
Javascript:
$(document).ready(function(){
$(".addToCart").click(function(){
var ev = arguments[0] || window.event,
origEl = ev.target || ev.srcElement;
var cartForm = origEl.name;
var formData = $(cartForm).serialize();
$.ajax({
type: "POST",
url: "https://www.paypal.com/cgi-bin/webscr",
cache: false,
data: formData,
success: onSuccess,
error: onError
});
return false;
});
});
HTML:
<a class="addToCart" cartNumber="#paypal<?PHP echo $counter; ?>">
<img name="#paypal<?PHP echo $counter; ?>" src="images/butNowButton.jpg" cartNumber="#paypal<?PHP echo $counter; ?>" border="0" style="text-decoration:none;" />
</a>
<form name="paypal<?PHP echo $counter; ?>" id="paypal<?PHP echo $counter; ?>" target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="business" value="removed for security">
<input type="hidden" name="lc" value="US">
<input type="hidden" name="item_name" value="<?PHP echo $itemName; ?>">
<input type="hidden" name="item_number" value="<?PHP echo $Row['id']; ?>">
<input type="hidden" name="amount" value="<?PHP echo $amount; ?>">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="button_subtype" value="products">
<input type="hidden" name="no_note" value="0">
<input type="hidden" name="tax_rate" value="0.000">
<input type="hidden" name="shipping" value="0.00">
<input type="hidden" name="add" value="1">
<input type="hidden" name="bn" value="PP-hopCartBF:btn_cart_LG.gif:NonHostedGuest">
</form>
谢谢,
银虎
【问题讨论】:
-
完全不知道为什么会收到 302(从技术上讲这不是错误)。但作为替代方案,请查看minicart.paypal-labs.com 的 PayPal 迷你购物车——这可能适合您的需求?
-
信不信由你..我能够使用它,因为我在您回复之前找到了它。它工作正常:) 非常感谢您的帮助,尽管现在我必须找到一种方法来使用 php 将多个项目添加到购物车(客户选择多个项目,然后我为他们添加到购物车)....必须找到答案到目前为止。