找不到“JFactory”类

我一直在使用Jumi在Joomla中创建一些模块。 所以我可以编写任何php / javascript代码并创建一个Jumi模块,我可以在哪里显示。

我已经做了一段时间没有问题但现在我正在尝试使用Jquery进行一些AJAX开发我收到此错误:

Class 'JFactory' not found in api.php 

所以我有一个带有jQuery代码的PHP文件:

 $(function() { $.ajax({ url: 'ajax_dashboard/api.php', //the script to call to get data data: "", dataType: 'json', //data format success: function(data) //on recieve of reply { var id = data[0]; //get id var vname = data[1]; //get name $('#output').append("id: "+id+" name: "+vname) .append("
"); //Set output element html } }); });

正如您所看到的,它调用api.php脚本来执行一些服务器处理。 此文件有许多joomla调用,如:

 $user = &JFactory::getUser(); 

那么为什么在这种情况下我没有Joomla框架?

问题是你的Ajax调用最终出现在Joomla“平台”的文件中。 如果可能的话,正确的方法是使ajax调用类似于:

的index.php?选择= yourcomponent&控制器= XXX&任务= YYY

(这意味着你应该在该组件中有一个组件“mycomponent”和一个控制器“xxx”)然后控制器应负责处理ajax调用并发送响应。 您可以返回json编码的响应,例如您需要的任何内容。

我希望它有所帮助

我用这个来解决问题。 我在joomla框架中获取变量。 然后我在我的ajax调用中传递User_Name变量…

希望这可以帮助