我已经挣扎了2个小时,到处寻找解决方案。
我正在使用 Zen-Cart 安装,我决定使用一些动态横幅。基本上我使用jQuery.get() 从banner1.php 加载一个URL -banner1.php 有一个由几个url(它们是产品页面)组成的数组,它从数组中回显一个随机url。
一旦 jQuery 加载了随机 URL,我就使用 jQuery.load() 函数来加载产品的图像、产品的价格和产品的名称。
所有这些工作都很好,但问题是 load() 函数似乎干扰了我的 Zen-Cart “重定向”函数。假设您正在查看产品,我们将其称为“产品 A” - 您决定通过单击“登录”按钮从该页面登录 - 发生的情况是您被带到登录页面,输入您的登录详细信息,然后点击“提交”。标准结果是,如果您成功登录,您将返回“产品 A”页面。但是使用我的小动态 jQuery 横幅混合物,它不是重定向回“产品 A”,而是加载 jQuery.load() 用于生成随机横幅的页面之一。我有 3 个横幅,每个动态加载一个随机 url,但这里是横幅 1 的示例:
<script type="text/javascript">
$.get("banner1.php", function(getbannerlink1) {
$( document ).ready(function() {
$("#banner1").load(getbannerlink1+ " #globalproductimage");
$('#banner1name').load(getbannerlink1+ " #productName", function(result) {
var banner1text = $('#banner1name').html();
banner1text = jQuery(banner1text).text();
$("#banner1name").html(banner1text);
});
$('#banner1price').load(getbannerlink1+ " #productPrices", function(result) {
var banner1prices = $('#banner1price').html();
banner1prices = jQuery(banner1prices ).text();
$("#banner1price").html(banner1prices );
});
var bannerlink1 = $("<a>").attr("href", getbannerlink1);
$("#banner1name").wrap(bannerlink1);
$("#banner1price").wrap(bannerlink1);
$("#banner1").wrap(bannerlink1);
});
});
</script>
问题是我不太担心客户登录后的错误重定向,当客户真正结帐时,问题也最令人失望。例如,如果他们的购物篮中有产品,点击结帐按钮,然后要求他们登录,一旦他们登录,而不是继续使用标准的购物车功能,将他们带到结帐的第一步过程中,它将它们重定向到动态横幅已加载的页面之一。我不知道如何解决这个问题,我尝试了一些奇怪的事情无济于事。为了便于参考,可能需要这样做,这是 Zen-Cart 处理登录后重定向的函数:
if (sizeof($_SESSION['navigation']->snapshot) > 0) {
// $back = sizeof($_SESSION['navigation']->path)-2;
//if (isset($_SESSION['navigation']->path[$back]['page'])) {
// if (sizeof($_SESSION['navigation']->path)-2 > 0) {
$origin_href = zen_href_link($_SESSION['navigation']->snapshot['page'], zen_array_to_string($_SESSION['navigation']->snapshot['get'], array(zen_session_name())), $_SESSION['navigation']->snapshot['mode']);
// $origin_href = zen_back_link_only(true);
$_SESSION['navigation']->clear_snapshot();
zen_redirect($origin_href);
} else {
zen_redirect(zen_href_link(FILENAME_DEFAULT, '', $request_type));
}
请帮忙!也许有一种更简单的方法我应该这样做:/
我注意到它加载的页面始终是 jQuery.load() 加载的最后一个横幅。就像我提到的那样,总共有 3 个横幅,所以如果横幅 2 的价格是最后一个加载的,那就是在重定向中加载的 URL。
编辑:banner1.php(这只是从数组中生成一个随机 url,但目前出于测试目的,我在数组中只有一个 URL):
<?php
$strings = array('http://example.com/index.php?main_page=product_info&cPath=3&products_id=104');
echo $strings[array_rand($strings)];
?>