Javascript 在joomla 3中使用window.location

Javascript 在joomla 3中使用window.location,javascript,php,joomla,joomla3.0,Javascript,Php,Joomla,Joomla3.0,我正在做一个项目,有人已经在joomla做了。我必须解决其中的一些问题。 他们在joomla 3.0中有一个place order组件。主页中有两个选项。一种是常规订单,另一种是特殊订单。它们作为单选按钮提供。在每个按钮上都有如下编写的onclick函数 onclick='window.location.href=("<?php echo JRoute::_('index.php?option=com_order'); ?>")' onclick='window.location.

我正在做一个项目,有人已经在joomla做了。我必须解决其中的一些问题。

他们在joomla 3.0中有一个place order组件。主页中有两个选项。一种是常规订单,另一种是特殊订单。它们作为单选按钮提供。在每个按钮上都有如下编写的onclick函数

onclick='window.location.href=("<?php echo JRoute::_('index.php?option=com_order'); ?>")'

onclick='window.location.href=("<?php echo JRoute::_('index.php?option=com_order&ordertype=2'); ?>")'
但是对于第二个,url是不正确的,它给出了一些错误

index.php?ordertype=2&option=com_order&Itemid=516&lang=en

请注意,第二个url缺少参数view=form&layout=edit。我怎样才能解决这个问题?我应该添加一个新的菜单项吗。如果是,什么类型?或者直接在window.location.href中硬编码url

这只是一个随机快照,但是如果您查看JRoute定义,它会说有三个选项:
($url,$xhtml=true,$ssl=null)

第二个听起来很有趣:

$xhtml替换&by&用于xml编译

也许把这个选项设为false,看看你的链接会发生什么

代码中由以下内容触发的部分:

if($xhtml) {
    $url = str_replace( '&', '&amp;', $url );
}
因此,将此设置为false至少不会替换&(这是我能看到的两种情况之间唯一的关键区别)。。。 我知道更换这个是有原因的,但是。。。好。。。如果您使用的是utf8,我想这应该不是问题

我是说。。。另一件事,绝对奇怪的是JRoute似乎翻转了选项和ordertype参数。。。不管什么原因

希望我至少能在这方面提供一些意见:D


关于

这只是一个随机镜头,但是如果你看一下JRoute定义,它会说有三个选项:
。($url,$xhtml=true,$ssl=null)

第二个听起来很有趣:

$xhtml替换&by&用于xml编译

也许把这个选项设为false,看看你的链接会发生什么

代码中由以下内容触发的部分:

if($xhtml) {
    $url = str_replace( '&', '&amp;', $url );
}
因此,将此设置为false至少不会替换&(这是我能看到的两种情况之间唯一的关键区别)。。。 我知道更换这个是有原因的,但是。。。好。。。如果您使用的是utf8,我想这应该不是问题

我是说。。。另一件事,绝对奇怪的是JRoute似乎翻转了选项和ordertype参数。。。不管什么原因

希望我至少能在这方面提供一些意见:D


关于

我的第一个建议是将
&ordertype=2
-部分移出JRoute::()-调用,因为这似乎会混淆JRoute

因此,尝试使用:

onclick='window.location.href=("<?php 
  echo JRoute::_('index.php?option=com_order') . '&ordertype=2'; 
?>")'
onclick='window.location.href=(“”)

(这有点难看,bquarta可能是对的:)

我的第一个建议是将
&ordertype=2
-部分移出JRoute::()-调用,因为这似乎会混淆JRoute

因此,尝试使用:

onclick='window.location.href=("<?php 
  echo JRoute::_('index.php?option=com_order') . '&ordertype=2'; 
?>")'
onclick='window.location.href=(“”)

(这有点难看,不过bquarta可能是对的:)

谢谢大家的回答。我只是用了另一种方法来解决这个问题

<?php $u = JURI::getInstance();
$u->setVar( 'ordertype', '2' );?>
onclick='window.location.href=("<?php echo JRoute::_($u->toString()); ?>")'

onclick='window.location.href=(“”)'

谢谢大家的回答。我只是用了另一种方法来解决这个问题

<?php $u = JURI::getInstance();
$u->setVar( 'ordertype', '2' );?>
onclick='window.location.href=("<?php echo JRoute::_($u->toString()); ?>")'

onclick='window.location.href=(“”)'

我假设您尝试使用JRoute呈现的菜单端点的ID是516?您尝试将url param Itemid=516添加到传递到JRoute的url params字符串中?我假设您尝试使用JRoute呈现的菜单端点的ID为516?您是否尝试将url参数Itemid=516添加到要传递到JRoute的url参数字符串中?