0

我正在尝试通过添加 javascript 文件在项目简介页面上启动 ajax 调用。我需要显示一些额外的信息以及现有的项目简介信息。我在自定义模块中包含了一个 javascript 文件,并按照下面说明的过程进行操作。如果我在这里遗漏任何东西,你能纠正我吗?

我使用 $.ajax({}) 来调用 ajax 请求,我的代码是这样的

    $.ajax(
    {
         type: "post",
         url: "index.php?path_info=projectfieldsextra",
         'data' : { 'client_value' : 178}, 
         success: function(el)
         {
               alert(el);
               return false;
            //$("#project").html(el);
           }
    });

在控制器中我创建了一个函数 get_project_information() 并且在模块定义类中我创建了一个这样的路由

     Router::map('projectfieldsextra', 'projectfieldsextra', array('controller' => 'project_fields', 'action' => 'get_project_information'));

但是在 makinf 调用时,它给了我这样的错误 -

   Call to a member function isInlineCall() on a non-object in /opt/lampp/htdocs/activecollab/activecollab/4.0.13/angie/frameworks/environment/controllers/FwApplicationController.class.php on line 211

任何人都可以帮我解决这个问题吗?

提前感谢杰伊什

4

1 回答 1

0

我最好的猜测是您的自定义控制器 ( ProjectFieldsController) 没有正确设置(它没有正确接受构造参数并将它们传输到父类)。如果你覆盖控制器的构造函数,你应该这样做:

/**
 * Controller constructor
 *
 * @param Request $parent
 * @param mixed $context
 */
function __construct($parent, $context = null) {
  parent::__construct($parent, $context);

  // Your code
}

请注意,您的代码还有其他问题,但它们不是问题的一部分,因此我将简要提及它们:

  1. 不要破解系统模块。这是升级问题的秘诀。编写您自己的模块,通过支持的事件连接到系统中。
  2. 系统约定是对各种系统名称使用下划线表示法,包括路由名称。show_project_info比 . 更具可读性showprojectinfo。这不是错误,但如果您遵循现有的命名约定,您将更容易与框架相处。
于 2013-10-16T08:44:00.867 回答