我正在尝试从控制器传递数据以在视图中使用。发生的事情是我正在为用户选择的产品(大小和颜色)获取超级属性,并且所有这些都被序列化并传递给我获得产品对象的控制器。从这个对象,我可以获得可配置的sku,然后我需要回显到设计view.phtml文件。
控制器中的功能如下:
if($product = $this->_initProduct())
{
$config = $product->getSku();
// if I echo $config here using firephp I can see that this is correct value
Mage::register('config_product', $config);
// I am hoping to set it as a global variable here that
// I can then retrieve on the success of the ajax function
}
在phtml中我有类似的东西将表单值发送到该控制器:
var data = $("#product_addtocart_form").serialize();
$.ajax({
url: "/locator/item/index",
data: data
}).done(function(){
<?php $currentProduct = Mage::registry('config_product');
// Why does this return blank??
?>
<?php Mage::helper('firephp')->send( $currentProduct ); ?>
});
答案 0 :(得分:1)
PHP和JavaScript不能像这样一起使用。 PHP用于Web服务器,JavaScript安装在客户端浏览器(IE,Chrome等)中。
在您的控制器中,您需要回显一个JSON编码的字符串,并在您的javascript中将dataType添加到.ajax函数中:
$.ajax({
url: "/locator/item/index",
data: data,
dataType: 'json'
},function(returnedData) {
console.log(returnedData);
});
在浏览器中打开js控制台以检查返回的数据。