仍然无法确定如何一起使用Ajax和Joomla框架。我创建了一个Joomla组件,我可以访问它:
index.php?option=com_mycomponent
我在components/com_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>
然后在script.php文件中我有:
<?php
$user =& JFactory::getUser();
echo "This is the user: ".$user;
?>
如果我没有在script.php中放置任何Joomla框架代码,它可以正常工作。但这样做的目的是我需要使用Joomla框架,因此需要创建一个组件。但我仍然不明白我是如何构建Joomla组件所以我没有得到Class 'JFactory' not found
错误?
答案 0 :(得分:1)
我认为正确的方法是在组件的controller.php文件中添加一个任务。
答案 1 :(得分:0)
最终不会花太长时间。唯一需要的文件是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>
我已经在代码中注释掉了jquery引用,因为widgetkit已经加载了它的副本,但只是将它保存在那里。
它不是加载另一个文件,而是隐藏#quote
div标签,当点击该按钮时,它会显示其中的数据。在这一个中,我添加了realname
和user ID
。
希望这有帮助。
此致