2014-11-20 6 views
1

머리가 돌고 있다는 문제가 있습니다. 나는 상황을 설명 할것이다. 나는 opencart 프로젝트에 참여하고 있는데, 이렇게 작동하는 버튼을 만들었다. 클릭하면, 웹 사이트 소유자에게 모든 것이 장바구니에 있음을 알리고, 이러한 제품은 고객 데이터를 통합하며 사용자가 로그인 한 경우에만 전자 메일을 보낼 수 있으며 문제가 시작됩니다.AJAX로 PHP 함수를 호출하지만 리디렉션이 작동하지 않습니다.

<div class="checkout-button"><a id="button-quotation" class="button">click me</a></div> 

을 그 다음 AJAX를 통해 PHP 함수를 호출 할이를 확인하기 :

이 고객이 클릭 할 버튼입니다

$(document).ready(function(){ 
$('#button-quotation').click(function(){ 
    var clickBtnValue = $(this).val(); 
    var ajaxurl = 'index.php?route=checkout/cart/quotation', 
    data = {'action': clickBtnValue}; 
    $.post(ajaxurl, data, function (response) { 
     alert("works!!"); 
    }); 
});}); 

그리고 여기에 리디렉션 기능이 그 로그인하지 않은 경우 클라이언트를 로그인 페이지로 보냅니다.

public function quotation(){ 
    if (!$this->customer->isLogged()) { 
     $this->session->data['redirect'] = $this->url->link('checkout/cart', '', 'SSL'); 

     $this->redirect($this->url->link('account/login', '', 'SSL')); 
    } 
} 

ails 작동하지만 클라이언트가 사이트에 로그인하지 않은 경우 리디렉션을 실행할 수 없습니다. 누군가 내가 제발 도와 줄 수 있니?

+0

클릭 기능에 견적()을 추가 할 수 없습니까? –

+0

당신은 이것을 2 way로 할 수 있습니다. 접근 방법 1) 간단한 방법 - 클라이언트 측에서 리다이렉션을 수행 할 수 있습니다. (그냥 "loginRequired"로 응답을 보내고 아약스 응답에서이 문자열을 체크하고 로그인 페이지로 리다이렉션합니다) 접근 2) 리디렉션 헤더와 함께 302로 응답을 보내야합니다. – Asik

답변

1

당신은 아약스에 URL을 보내 자바 스크립트를 통해 리디렉션 할 수 있습니다 :

또한이 질문을 참조하십시오.

window.location.href = response.your_login_url ;

관련 문제