Kha*_*gan 5 javascript ajax jquery joomla
我目前正在使用PHP编写时间表应用程序.
我想要做的是为一周中的每一天都设置一个按钮,当用户点击每个按钮时,使用JavaScript将当天列出的任务加载到浏览器窗口中.
我目前的代码是:
<?php
class loadTimetable
{
public static function getTimetable( $params )
{
//Obtain a database connection
$db = JFactory::getDbo();
//Retrieve the shout
$query = $db->getQuery(true)
->select($db->quoteName('title'))
->from($db->quoteName('#__timetable'))
->where('day = '. $db->Quote($params));
//Prepare the query
$db->setQuery($query);
// Load the row.
$result = $db->loadResult();
//Return the Hello
return $result;
}
}
$day = date("N");
$timetable = getTimetable($day);
?>
<h1><?php echo $timetable; ?></h1>
Run Code Online (Sandbox Code Playgroud)
该功能在Joomla内部,经过测试可以正常工作.我需要的帮助是如何使用Javascript/AJAX调用该函数.
据我所知,所有Javascript必须做的是调用所选日期的函数(例如,getTimetable(1)其中1是HTML中星期一按钮的值).
根据您的问题和进一步的评论,您应该将代码(或至少其调用)移至组件。只有组件可以被“调用”。有很多选项,但为了保持简单,您至少需要(在组件中):
控制器中的任务,即getTimetable()接收ajax调用的函数;这也可以在子控制器中完成。如果是控制器,您将使用 来调用它index.php?option=com_yourcomponent&task=getTimetable&day=2011-09-17,如果是子控制器task=subcontroller.getTimetable
您粘贴到模块中的函数(我们现在将其称为 timemodule)getTimetable($day)需要公开。
该controller:getTimetable()函数将
3.a. 解析和清理日期参数输入;
3.b. 实例化模块 timemodule
3.c. 实例化视图,注入模块,让它加载数据库的结果并
3.d. 调用视图的render()方法
3.e. 语句exit(因此 Joomla 不会渲染模板和其他模块(您想要的只是 json/xml 输出)。
当然,还有很多选择;在控制器中,您可以使用设置日期变量setUserState,然后重定向到视图,并使用模块中用户状态中的变量;这实际上是一个偏好问题,您要记住的是,exit应该在呈现输出的循环中调用该语句,因此如果您重定向,您将在视图的display()方法中调用它。您还可以附加&format=json到您的网址来实现此目的。
| 归档时间: |
|
| 查看次数: |
565 次 |
| 最近记录: |