Magento Ajax和Mage :: getModel

时间:2015-05-08 17:11:23

标签: php jquery ajax magento magento-1.9

我正在使用Magento 1.9并在页面.phtml中我有一个AJAX请求:

$('#dive').change(function() {
    if($(this).val() > 0) {
        $j.ajax({
            url: 'dominio.com/myfile.php',
            type: 'POST',
            data: { id: $(this).val() },
            success: function(data) {
                $('.classe').html(data);
            },
            error: function (xhr, ajaxOptions, thrownError) {
                alert('error');
            }    
        });
    }
});

myfile.php的内容是:

<?php 
     $id = $_POST['id'];
     echo $id;
?>

当select表格的值为&gt;时,{id}​​会显示.classe。 0但我想在myfile.php中包含父类别的子类别id = $ id

我尝试添加此代码:

$children = Mage::getModel('catalog/category')->getCategories($id);
foreach ($children as $subcategory) {
    echo $subcategory->getName();
}

该代码在.phtml中有效,但如果我在myfile.php中添加它,我什么也得不到。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可能会错过应用程序初始化。 如果这是你的整个PHP代码:

<?php 
     $children = Mage::getModel('catalog/category')->getCategories($id);

foreach ($children as $subcategory) {
      echo $subcategory->getName();
}
?>

你需要添加Mage.php 并启动Mage :: app();

<?php 
require_once ('app/Mage.php');
Mage::app();
$children = Mage::getModel('catalog/category')->getCategories($id);

foreach ($children as $subcategory) {
      echo $subcategory->getName();
}
?>

看起来你可能没有使用新的控制器,所以你需要再次初始化应用程序。