我有一个问题正在转变我的头脑。我将解释这种情况......我正在开发一个带有opencart的项目,我创建了一个按钮,其工作方式如下:当您点击它时,它应该向网站所有者发送所有内容都在购物车内,并且这些产品将客户数据放在一起,只有在用户登录后才能发送电子邮件,然后问题才会开始。
这是客户点击的按钮:
<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'));
}
}
我可以使电子邮件正常工作,但如果客户端未登录该站点,则无法运行重定向。有人可以帮我吗?
答案 0 :(得分:2)
如果在PHP函数中重定向,则只会重定向AJAX请求。
您应该做什么:让该函数返回指示JavaScript应该向您的登录页面发出重定向的数据。
另请参阅此问题:How to manage a redirect request after a jQuery Ajax call
答案 1 :(得分:1)
您可以将网址发送到ajax并通过javascript重定向。
window.location.href = response.your_login_url ;