【问题标题】:Saving Joomla front end test scores to the server将 Joomla 前端测试成绩保存到服务器
【发布时间】:2015-11-22 09:31:05
【问题描述】:

在我正在开发的一个 Joomla 网站中,用户进行英语单词知识测试。这个测试的分数是通过一些 jQuery 代码计算出来的,并显示在测试页面上。我想将前端的这个分数作为存储在那里的用户数据的一部分保存到服务器。我希望在完成测试后自动保存分数。我知道需要一个 php 脚本,但我想知道 jQuery 如何触发脚本。我还查看了 SO 文章“从 joomla 前端保存数据”和“通过 jquery 链接单击运行 php 文件”。这些很有帮助,但是在 Joomla 环境中是否有任何关于 php 脚本的教程?我检查了 Joomla 文档,但这似乎主要面向插件开发。任何帮助将不胜感激感谢期待。

【问题讨论】:

  • 当您说“插件开发”时,您是指扩展开发吗?在 Joomla 中,插件作为一种扩展具有特定的含义。是的,您可能确实需要开发一个 Joomla 扩展,但您也可以安装一个表单扩展,并且已经为您完成了很多工作。我想我的问题是你用什么来生成表格?你是如何展示它的?你想把它保存在哪里?
  • 当用户进行测试时在页面上显示测试结果的对话框/表单是由 html 生成的,并且测试结果由响应按钮单击的 jQuery 代码插入到对话框/表单中。这部分工作正常。我认为插件可能是要走的路,因为它们与触发事件相关联(比如按钮点击?)。无论如何,我需要将这些用户测试结果保存为用户记录的一部分。网站是english2theworld.com,请查看课程>单词集测试1-15>单词集测试,感谢您的帮助
  • 你不能把它保存在“用户记录”中,你需要弄清楚你想保存它的位置。它会作为编辑或创建配置文件的一部分来完成吗?在这种情况下,您可以将其作为插件来实现。

标签: php jquery joomla


【解决方案1】:

1) 创建 PHP 脚本将分数存储到数据库

<?php
define( '_JEXEC', 1 );
define('JPATH_BASE', '/home/snehapur/snehyog');
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
/* Create the Application */
$mainframe =& JFactory::getApplication('site');
$task = JRequest::getVar('task');
if($task == 'savescore') {
   $userId = JRequest::getVar('userId');
   $score = JRequest::getVar('score');
   // php code to save score in DB
}
?>

2) 从 jQuery 调用 PHP 脚本

jQuery.get( "myPhpScript.php?task=savescore&userId=123", function( data ) {
    alert(data);
});

【讨论】:

  • 感谢并抱歉延迟回复。我在服务器上运行临时副本,所以我猜是 JPATH_BASE "/home/staging/3" 的值
  • 再问一个问题,PHP 脚本应该放在哪个文件夹中?
  • JPATH_BASE 是 joomla 的安装路径。我通常将自定义 php 脚本放在单独的目录中
猜你喜欢
  • 1970-01-01
  • 2021-09-09
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
  • 2017-03-19
  • 1970-01-01
  • 2010-10-23
  • 1970-01-01
相关资源
最近更新 更多