I have some jQuery with ajax in an Magento phtml file which POSTs to an custom php script I have. What I want to do is create an Magento session in the custom php script which value is available in the phtml file where the ajax call is made.
For example the phtml file (category list page) has the ajax call:
$.ajax({
type: "POST",
url: "/php/process.php",
data: dataString,
success: function(){
location.reload();
}
});
Which successfully calls to my custom php script (process.php).
process.php contains the following code for testing:
require_once ("/app/Mage.php");
umask(0);
Mage::app();
$returnedString= "123";
Mage::getSingleton('core/session')->setMyValue($returnedString);
I have also tried this with session_start().
Now in the phtml file to test the session is active I have the following test code:
if(Mage::getSingleton('core/session')->getMyValue()=='123'):
echo "Session created";
else:
echo "Session not created";
endif;
If I display the session array in the phtml file the session isn’t visible as well. I’m not sure where I’m going wrong.
Any help is greatly appreciated. Thanks in advance.
What you’re trying is impossible. The phtml file ist interpreted on your first request to your site. After the interpretation you get a html file with your javascript as response from your server. After that your browser interprets the Javascript and does the ajax call. This is a totally new request. Your phtml file is not rendered or interpreted again.
When you want to actualize your site with some content you’ll have to give that content as response to your ajax call.