Joomla组件表单重定向不起作用

时间:2013-04-30 02:55:38

标签: joomla joomla2.5

我有一个表单,我在jquery模式对话框中动态构建。

var $myform = jQuery("<form id='EditForm' method='post' action='index.php?option=com_mycomponent&task=edit'></form>");
...

它由我的控制器中的edit方法处理,然后我重定向回所需的页面:

JFactory::getApplication()->redirect(JRoute::_('index.php?option=com_mycomponent'));

此表单中的提交有效且一切都很好,除了我被路由回来的网址。它应该是

index.php?option=com_mycomponent(或SEF网址)

但我得到了:

components/mycomponent/

从技术上讲,这是相同的页面,但现在它搞砸了我之后尝试做的任何其他操作。我猜测我在javascript中创建表单是问题的一部分。我打赌如果我把

<?php echo JRoute::_('index.php?option=com_mycomponent') ?>

可能有用。但我不能这样做,因为这是一个单独的JavaScript文件中的表单,我没有PHP可用。有什么想法我可以做什么?

1 个答案:

答案 0 :(得分:0)

您获得的网址是正确的。它是index.php?option=com_mycomponent的SEF网址。

您可以添加Itemid(菜单项),以便SEF URL更漂亮。或者您可以跳过JRoute部分,然后获得非SEF URL。

更新: 要获取当前活动的菜单itemid,只需使用JRequest(depreceated)或JInput(http://docs.joomla.org/Retrieving_request_data_using_JInput)从当前URL获取它:

$itemid = JFactory::getApplication()->input->get('Itemid', '0', 'INT');

但是如果有一个活动的菜单项,JRoute应该已经自己添加它。