【问题标题】:Joomla: Post form fields from module to componentJoomla:将表单字段从模块发布到组件
【发布时间】:2011-08-28 06:47:19
【问题描述】:

我是 Joomla 开发的初学者。我开发了一个评级模块,如下所示。

我已经设法从我的数据库中获取评分,但是当用户单击投票按钮时,我不知道如何插入数据库。

我的模块中有一个表单,其中包含四个下拉框和一个提交按钮(投票)。现在我打算开发一个组件来处理这个表单数据。我应该如何开发我的组件来处理这个?我的模块中的表单操作应该是什么?

感谢任何帮助。提前致谢。

【问题讨论】:

  • 不需要 Ajax。我只需要在组件中处理这个表单数据。

标签: database forms joomla joomla-module


【解决方案1】:

创建组件 http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1 创建模块 http://docs.joomla.org/Creating_a_simple_module

您必须使用 JRoute 指定模块的操作 http://docs.joomla.org/Supporting_SEF_URLs_in_your_component

查看组件代码示例

$controller->execute( JRequest::getWord( 'task' ) );

所以你必须创建控制器和特殊的任务方法来处理数据

如果您根本不需要组件,您可以将逻辑放入模块中 通过这种方式,模块应该对当前页面具有表单操作并处理类似的逻辑

$elements = JRequest::getVar('vote_data', array(), 'post');
if(count($elements)) {
   // do something
}

【讨论】:

  • 我创建了控制器。但我不知道下一步该做什么。在哪里处理帖子数据?
  • 我会改为在模块中创建功能。除非您需要归档池或计划在未来添加更多功能,否则创建只有一个事件的组件是不值得的。
  • 要处理您的帖子数据,请使用docs.joomla.org/How_to_use_the_JTable_class。签入,签出不是必需的,只需创建表模式,绑定您的帖子数据,检查并存储。加载后,您只需将其显示在您的模块中。
  • 由于 option=com_mycomponent,您无法找到视图。如果您提交到模块,则不需要提交该或控制器或任务。只需像上面推荐的 Fivell 那样发布到模块。只需将 post 变量作为模块代码的一部分查找。如果它们在那里,将内容转储到数据库并显示结果。如果它们不存在,请显示该表单。
  • 只要您对输入进行清理,就不会有任何问题。正如 Fivell 提到的,确保您处理正确的输入也是一个好主意。我使用唯一的字段名称,还包括一个加盐哈希以确保输入来自模块。
猜你喜欢
  • 2011-09-29
  • 2013-09-02
  • 2013-01-15
  • 2014-01-04
  • 2015-07-05
  • 2017-01-18
  • 1970-01-01
  • 2011-08-11
  • 2011-08-19
相关资源
最近更新 更多