Magento Ajax 和 Mage::getModel

Magento Ajax and Mage::getModel

我正在使用 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 表单的值 > 0 时,$id 显示在 .classe 中,但我想在 myfile.php 中包含父类别的子类别id = $id

我尝试添加此代码:

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

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

有什么想法吗?

您可能错过了应用程序初始化。 如果这是你的全部 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();
}
?>

看来您可能没有使用新的控制器,因此您需要重新初始化应用程序。