Jquery Joomla with Ajax:致命错误:Class';JFactory';找不到
在弄清楚如何一起使用Ajax和Joomla框架方面仍然存在问题。我已经创建了一个Joomla组件,我可以通过以下方式访问该组件:Jquery Joomla with Ajax:致命错误:Class';JFactory';找不到,jquery,ajax,joomla,joomla2.5,Jquery,Ajax,Joomla,Joomla2.5,在弄清楚如何一起使用Ajax和Joomla框架方面仍然存在问题。我已经创建了一个Joomla组件,我可以通过以下方式访问该组件: index.php?option=com\u mycomponent 我在components/com\u mycomponent/views/mycomponent/tmpl/default.php中使用Jquery和Ajax: <?php // No direct access to this file defined('_JEXEC') or die('R
index.php?option=com\u mycomponent
我在components/com\u mycomponent/views/mycomponent/tmpl/default.php
中使用Jquery和Ajax:
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
?>
<html>
<head>
<title>Ajax with jQuery Example</title>
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/JavaScript">
$(document).ready(function(){
$("#generate").click(function(){
$("#quote p").load("components/com_mycomponent/views/mycomponent/tmpl/script.php");
});
});
</script>
</head>
<body>
<div id="wrapper">
<div id="quote"><p> </p></div>
<input type="submit" id="generate" value="Generate!">
</div>
</body>
</html>
Ajax与jQuery示例
$(文档).ready(函数(){
$(“#生成”)。单击(函数(){
$(“#quote p”).load(“components/com#u mycomponent/views/mycomponent/tmpl/script.php”);
});
});
然后在script.php文件中,我有以下内容:
<?php
$user =& JFactory::getUser();
echo "This is the user: ".$user;
?>
如果我不把任何Joomla框架代码放在script.php中,它就可以正常工作。但这样做的目的是,我需要使用Joomla框架,从而创建组件的整个要点。但是我仍然不明白我需要如何构造Joomla组件,这样我就不会得到
类'JFactory'not found
错误?最终并没有花费太长时间。唯一需要的文件是default.php,因此您可以删除script.php和其中的其他奇怪文件
Default.php
<?php
defined('_JEXEC') or die('Restricted access');
//$document =& JFactory::getDocument();
//$document->addScript("https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js");
$user =& JFactory::getUser();
?>
<div id="wrapper">
<div id="quote" style="display:none; padding-bottom:10px;">
<?php
echo "<p>This is your username: " . $user->username . "</p>";
echo "<p>This is your realname: " . $user->name . "</p>";
echo "<p>This is your user ID: " . $user->id . "</p>";
?>
</div>
<input type="submit" id="generate" value="Generate!">
</div>
<script type="text/javascript">
$(document).ready(function(){
$("#generate").click(function(){
$("#quote").show();
});
});
</script>
$(文档).ready(函数(){
$(“#生成”)。单击(函数(){
$(“#quote”).show();
});
});
我已经注释掉了代码中的jquery引用,因为widgetkit已经加载了它的一个副本,但为了以防万一,还是保留了它
这样做不是加载另一个文件,而是隐藏#quote
div标记,当单击按钮时,显示其中的数据。在这篇文章中,我添加了realname
和userid
,以防万一
希望这有帮助
问候最后并没有花太多时间。唯一需要的文件是default.php,因此您可以删除script.php和其中的其他奇怪文件 Default.php
<?php
defined('_JEXEC') or die('Restricted access');
//$document =& JFactory::getDocument();
//$document->addScript("https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js");
$user =& JFactory::getUser();
?>
<div id="wrapper">
<div id="quote" style="display:none; padding-bottom:10px;">
<?php
echo "<p>This is your username: " . $user->username . "</p>";
echo "<p>This is your realname: " . $user->name . "</p>";
echo "<p>This is your user ID: " . $user->id . "</p>";
?>
</div>
<input type="submit" id="generate" value="Generate!">
</div>
<script type="text/javascript">
$(document).ready(function(){
$("#generate").click(function(){
$("#quote").show();
});
});
</script>
$(文档).ready(函数(){
$(“#生成”)。单击(函数(){
$(“#quote”).show();
});
});
我已经注释掉了代码中的jquery引用,因为widgetkit已经加载了它的一个副本,但为了以防万一,还是保留了它
这样做不是加载另一个文件,而是隐藏#quote
div标记,当单击按钮时,显示其中的数据。在这篇文章中,我添加了realname
和userid
,以防万一
希望这有帮助
关于我认为正确的方法是在组件的controller.php文件中添加一个任务
我认为正确的方法是在组件的controller.php文件中添加一个任务
这是script.php中唯一的代码吗?您可以删除
language=“javascript”
,因为不需要它。为什么要在default.php?@Lodder中使用html
和body
标记,这是script.php中唯一的代码。不过,我一直在尝试编写一些简单的echo代码,只是为了验证我是否可以让Ajax调用正常工作(确实如此)。问题是我需要将Joomla框架与script.php一起使用。W.r.t html和body标记,我不知道,我认为这是必要的。这是script.php中唯一的代码吗?您可以删除language=“javascript”
,因为不需要它。为什么要在default.php?@Lodder中使用html
和body
标记,这是script.php中唯一的代码。不过,我一直在尝试编写一些简单的echo代码,只是为了验证我是否可以让Ajax调用正常工作(确实如此)。问题是我需要将Joomla框架与script.php一起使用。W.r.t html和body标记,我不知道,我认为这是必要的。尝试了这个,但我的生成按钮没有做任何事情。虽然它没有给出JFactory错误,但事实上它没有给出任何错误?@Tom:你在一个实时站点上有这个组件吗,或者你能提供一个下载链接吗?很遗憾,我希望它是一个开发站点。我可以让你进入,但需要你的ip@Tom:问题解决了。我已经更新了我的答案。希望这有帮助。尝试过这个,但我的“生成”按钮没有任何作用。虽然它没有给出JFactory错误,但事实上它没有给出任何错误?@Tom:你在一个实时站点上有这个组件吗,或者你能提供一个下载链接吗?很遗憾,我希望它是一个开发站点。我可以让你进入,但需要你的ip@Tom:问题解决了。我已经更新了我的答案。希望这有帮助。