저는 2 시간 동안 고민하고 있습니다.jQuery 장바구니 기능을 방해하는 .load()
나는 선 (Zen-Cart) 설치로 작업 중이며 일부 동적 배너를 던지기로 결정했습니다. 기본적으로 jQuery.get()을 사용하여 banner1.php에서 URL을로드합니다. - banner1.php는 몇 개의 URL (제품 페이지)의 배열을 가지며 배열에서 임의의 URL을 반향 출력합니다.
jQuery에 의해 임의의 URL이로드되면 jQuery.load() 함수를 사용하여 제품 이미지, 제품 가격 및 제품 이름을로드합니다.
이 모든 기능은 완벽하게 작동하지만로드() 함수가 Zen-Cart "리디렉션"기능을 방해하고있는 것 같습니다. 제품을보고 있다면 "제품 A"라고 부르 자. "로그인"버튼을 클릭하여 해당 페이지에서 로그인하십시오. 로그인 페이지로 이동 한 경우 로그인 정보를 입력하십시오 , "제출"을 누르십시오. 표준 결과는 사용자가 성공적으로 로그인하면 "제품 A"페이지로 되돌아갑니다. 그러나 내 작은 동적 jQuery 배너 조합을 사용하면 "제품 A"를 리디렉션하는 대신 jQuery.load()가 임의 배너를 생성하는 데 사용한 페이지 중 하나를로드합니다. 나는 각 동적으로 임의의 URL을로드, 3 개 배너가 있지만, 여기에 배너 하나의 예입니다
<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>
것은, 내가 한번 고객 로그 부당 재 지정에 대해 너무 걱정하지 않아요 또한 문제가 고객이 실제로 Checkout 할 때 가장 실망스럽게 발생합니다. 예를 들어, 장바구니에 제품이있는 경우 체크 아웃 버튼을 클릭하면 로그인하라는 메시지가 표시되고 로그인 한 후에 표준 장바구니 기능을 계속 사용하는 대신 체크 아웃의 첫 번째 단계로 이동합니다 프로세스에서 동적 배너가로드 한 페이지 중 하나로 리디렉션합니다. 나는 이것을 어떻게 분류해야할지 모르겠다. 나는 쓸데없는 이상한 것을 시도했다.
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)];
?>
banner1.php에 대한 코드를 확인해야하지만, banner1.php가 나중에 Zen에서 리디렉션을 수행하는 데 사용되는 세션 변수 $ _SESSION [ 'navigation']을 수정하고있는 것으로 보입니다. –
banner1.php에 대한 코드를 포함하도록 원래 게시물을 편집했습니다. 그러나 나는 banner1.php가 그렇게하고있는 것은 확실하지 않습니다. 나는 $ .get ("banner1.php ", function (getbannerlink1) {그리고 로컬 변수에서 직접 URL을 가져 오는 load()가 있습니다.이 문제를 일으키는 load() 함수가 확실합니다. – StuyvesantBlue