2013-01-25 83 views
0

我有一个jQuery与ajax在一个Magento phtml文件发布到我有一个自定义php脚本。我想要做的是在自定义php脚本中创建一个Magento会话,该脚本的值可以在制作ajax调用的phtml文件中使用。自定义php脚本的Magento会话不显示在phtml页面 - ajax

例如,PHTML文件(分类列表页)具有Ajax调用:

$.ajax({  
type: "POST",  
url: "/php/process.php",  
data: dataString,  
success: function(){  
location.reload(); 
    }  
    }); 

它成功地调用我的自定义PHP脚本(process.php)。

process.php包含测试下面的代码:

require_once ("/app/Mage.php"); 
umask(0); 
Mage::app(); 
$returnedString= "123"; 
Mage::getSingleton('core/session')->setMyValue($returnedString); 

我也用在session_start尝试这样做()。

现在在PHTML文件以测试会话是活动的,我有以下的测试代码:

if(Mage::getSingleton('core/session')->getMyValue()=='123'): 
    echo "Session created"; 
else: 
    echo "Session not created"; 
endif; 

如果我显示在PHTML会话阵列文件中的会话是不可见的,以及。我不确定我要去哪里错。

任何帮助,非常感谢。提前致谢。

回答

1

你正在尝试的是不可能的。您的第一个请求会将phtml文件解释为您的网站。解释之后,您将得到一个带有JavaScript的html文件,作为服务器的响应。之后,您的浏览器将解释Javascript并执行ajax调用。这是一个全新的要求。您的phtml文件不会再次呈现或解释。

当你想用一些内容来实现你的网站时,你必须给这个内容作为对你的ajax调用的响应。

+0

谢谢您的回复。我认为在调用自定义php脚本并创建会话之后,ajax代码的成功函数调用'location.reload();'然后重新加载页面并再次呈现phtml文件(这将显示会话)。 – user1669256

+0

您可以试试: 'require_once'./app/Mage.php'; Mage :: app() - > setCurrentStore(1); Mage :: getSingleton('core/session',array('name'=>'frontend')); $ returnedString =“123”; Mage :: getSingleton('core/session') - > setMyValue($ returnedString);' –

相关问题