如何在joomla中使用表单submit method =“get”

时间:2012-07-17 01:34:28

标签: php joomla

我有一个示例代码:

<?php
$id = JRequest::getVar('id');
$action = "index.php?option=com_test&id=".$id;
?>
<form action="<?php echo $action ?>" method="get">
<input type="text" name="id" value=""/>
<input type="submit" value="submit" name="submit" />
</form>

当我提交表单时,网址是“index.php&id=...”=&gt;错误找不到组件

如何解决问题的结果是“index.php?option=com_test&id=...

1 个答案:

答案 0 :(得分:2)

JROUTE是什么?

forum action中,您应该使用JRoute(组件路由器)中的功能将框架中的URL正确路由到组件。 JRoute::_('index.php?option=com_test&id=".$id');

<强>为什么吗

为避免在通过Menu Manager创建菜单项时出现问题,您的代码将不兼容(即会显示错误no component can be found)。

<强>不相容?你的意思是什么?

这可能是因为有人可能创建了一个菜单项index.php/myMenuItem/,而joomla标准使得默认网址?option=com_test不兼容。

  

如何在网址中使用别名?

     

对于菜单项,Joomla!使用别名作为URL插件。假设您使用前两个SEF URL选项,并创建一个名为Products的菜单项。您的网址为example.com/products。

     

的Joomla!还使用URL中数据的主键值来帮助路由器导航到正确的页面。继续前面的示例,如果您的产品菜单项是针对文章/类别博客,则文章标题和/或阅读更多链接的链接将包含三个部分:

     
      
  • 菜单项网址 - example.com/products;
  •   
  • 另外,类别和类别别名的主键 - 32-fruit;
  •   
  • 另外,文章和文章别名的主键 - 1-apple;   完整的网址是:http://example.com/products/32-fruit/1-apple
  •   

信用(JRoute,2011)

<强>实施

<?php
$id = JRequest::getVar('id');
$action = "index.php?option=com_test&id=".$id; ?>
<form action="<?php echo JRoute::_($action); ?>" method="get">
<input type="text" name="id" value=""/>
<input type="submit" value="submit" name="submit" />
</form>

其他示例..

如果您想了解如何在其他组件中实现JRoute,可以在管理员组件com_menus的views部分中查看。在目录com_menus/views/items/tmpl/edit.php