如何在Joomla模块中使用jQuery ajax

时间:2010-03-04 14:24:10

标签: jquery joomla module

我正在创建一个模块,在我的主PHP文件中,我添加了对Javascript文件的引用。在那个Javascript文件中,我在dom上做了一个jQuery调用,它执行一个Ajax帖子来获取div的初始内容。它发布的URL是另一个PHP文件(gateway.php),它是我模块的一部分。 (此gateway.php调用远程服务器来获取内容。)

嗯,模块文件通常禁止直接访问。我可以注释掉禁止直接访问的代码行。即使这样做,出于某种原因,似乎我的gateway.php无法完全访问Joomla中的所有内容。例如,gateway.php需要my helper.php文件。我正在做

require_once(dirname(__FILE__) . DS . 'helper.php');

据我所知,是包含文件的标准方法。但是,我收到的错误表明DS没有被翻译为Joomla中定义的值。它将DS视为字符串值。

如果我将其更改为

require_once(dirname(__FILE__) . '/helper.php');

然后我收到了禁止直接访问的错误。

知道这里发生了什么,或者在主PHP模块文件以外的文件中使用Joomla模块中的Ajax的正确方法?

1 个答案:

答案 0 :(得分:1)

除非有特殊原因,否则你应该通过Joomla的index.php文件进行调用。不要尝试调用单个PHP文件,除非它们100%独立于Joomla。在Joomla中每个.php文件顶部调用defined( '_JEXEC' ) or die( 'Restricted access' );的原因是:您希望最小化Joomla中的入口点数。

要进行从Joomla中检索数据的AJAX / JSON调用,您需要创建一个与您的模块一起使用的小组件。几个月前我写了一篇关于这篇文章的博文:http://www.designvsdevelop.com/the-way-not-to-do-javascript-in-joomla