0

我有一个在 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'));

从表单提交的这个工作正常,除了我被路由回的 url 之外一切都很好。它应该是

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

但相反,我得到:

components/mycomponent/

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

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

这可能会奏效。但我不能这样做,因为这是一个单独的 javascript 文件中的表单,我没有可用的 php。有什么想法我能做什么?

4

1 回答 1

0

你得到的网址是正确的。这是index.php?option=com_mycomponent.

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

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

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

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

于 2013-04-30T08:33:09.243 回答