【问题标题】:jQuery .post not executing task in URLjQuery .post 没有在 URL 中执行任务
【发布时间】:2010-10-18 23:47:24
【问题描述】:

我的问题涉及 jQuery .post 和 Joomla。我有一个模板,其表单位于手风琴区域之一(使用 jQuery UI 手风琴)。我在表单中有一个按钮 type=submit 。当用户单击手风琴区域中的按钮时,通过 jQuery 生成表单 html。

当用户点击表单提交按钮时,事件调用 jQuery.post,然后应该调用控制器中的保存函数,然后调用模型中的保存到数据库函数。

.post 的 URL 是 index.php,我序列化()表单输入 - 使用隐藏元素,我将任务设置为控制器内的保存功能,并且控制器也定义了。

问题是单击按钮时没有调用控制器中的保存任务,模型中的保存到数据库功能也没有。用户点击按钮后,页面重定向到 index.php(主页)。不保存到数据库。

任何帮助将不胜感激。

template.php 表单元素:

<input type="hidden" name="controller" value="controller" />       
<input type="hidden" name="task" value="saveProgramUI" />'

.js 代码:

jQuery('#new_program_form').submit( function () {
    if (jQuery('#new_program_form').valid()) {
        jQuery.post("index.php", jQuery("#new_program_form").serialize(), function(html){
            alert("Data Loaded: " + html);
         });
    }
});

控制器代码:

function saveProgramUI(){



    $program = JRequest::get( 'POST' );
    $model = & $this->getModel('pfm');

    $model->saveProgramUI($program);


    $resp = "Hello World!";

    return $resp;

}

型号代码:

function saveProgramUI($program)
{

 $programTableRow =& $this->getTable('programs');
// Bind the form fields to the programs table, save to db

if (!$programTableRow->save($program)) {

JError::raiseError(500, 'Error saving program');
} 

}

【问题讨论】:

  • 您应该接受对您问题的回答。
  • template.php 表单元素:'
  • 新手...我如何接受答案?
  • 点击每个问题最佳答案旁边的空心检查。
  • 某人的答案旁边有一个空复选框。你会想点击它。您有机会从所有给出的答案中“挑选”出最佳答案。它表示尊重花时间给你一个很好的答案的人,同时帮助其他人在寻找他们自己的问题时找到你的问题。欢迎来到社区:)

标签: jquery ajax forms joomla submit


【解决方案1】:

return false; 添加到submit 处理程序的末尾。

否则,浏览器将在运行您的处理程序后正常提交表单,然后才有机会发送请求。

【讨论】:

  • 好的,这将停止重定向到 index.php,谢谢。但是 .post 仍然没有进行保存任务。会尝试一些东西。
  • 还有一点信息:.post 响应包含页面的所有 html。似乎没有调用控制器中的任务。
  • 我不知道 Joomla,所以我不能帮你。检查您的网址。
【解决方案2】:

已解决。

这是一个 Joomla 问题,而不是 jQuery。

需要将此行添加到组件的组件文件中:

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

还添加了视图view.raw.php和相应的布局模板。

这个页面很有启发性: http://docs.joomla.org/How_Joomla_pieces_work_together

我是 Joomla 开发的新手,所以回到基础来了解事物,该页面有答案。

感谢大家的想法!

【讨论】:

    猜你喜欢
    • 2015-09-04
    • 1970-01-01
    • 2014-03-28
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多