2013-04-30 23 views
0

我有一個表格,我動態建立一個jQuery模式對話框內。Joomla組件表單重定向不工作

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 URL)

而是我得到:

components/mycomponent/

技術上是相同的頁面,但現在它搞砸了任何其他操作我嘗試做之後。我猜測我在javascript中創建表單是事實的一部分。我敢打賭,如果我把

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

可能工作。但我不能這樣做,因爲這是一個單獨的JavaScript文件中我沒有PHP可用的窗體。任何想法我可以做什麼?

回答

0

您得到的URL是正確的。這是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應該已經自己添加它了。

+0

謝謝。刪除JRoute做到了。但我想保留它。如果我將ItemId硬編碼爲似乎可行的url,但是您知道如何生成當前菜單的ItemID。這[後](http://stackoverflow.com/questions/4529567/joomla-how-to-get-the-url-of-a-specific-menu-itemid)不適合我。 – Tom 2013-04-30 16:59:20

+0

已更新的答案。 – Bakual 2013-04-30 20:09:12