我有一个在两个不同页面上运行的脚本,一个用于订单,一个用于报价。这些页面有一个相同的 url,后跟一个动态字符串。我该怎么做才能让这个脚本在一页上做一件事,在另一页上做一件事?
编辑:我对这个回顾不是很清楚,当前选择的答案确实适用于我的要求,但它不应该与 Magento 一起使用。Magento 内置了用于确定此信息的方法,您可能希望覆盖它而不是将脚本注入到 adminhtml 代码中。
我有一个在两个不同页面上运行的脚本,一个用于订单,一个用于报价。这些页面有一个相同的 url,后跟一个动态字符串。我该怎么做才能让这个脚本在一页上做一件事,在另一页上做一件事?
编辑:我对这个回顾不是很清楚,当前选择的答案确实适用于我的要求,但它不应该与 Magento 一起使用。Magento 内置了用于确定此信息的方法,您可能希望覆盖它而不是将脚本注入到 adminhtml 代码中。
通过 PHP 中的 $_REQUEST 查看来自 URL 的参数。见这里: http: //php.net/manual/en/reserved.variables.request.php
编辑:我从您的评论中看到您的 URL 是这样的http://www.example.com/index.php/admin/sales_order/view/order_id/273151/
。
如果总是这样,没有任何查询参数,那么您可能需要$_SERVER['PATH_INFO']
在 PHP 中解析变量。
(见这里: http: //php.net/manual/en/reserved.variables.server.php)。
您可以通过执行以下操作获取这些路径部分的数组:
$myPathArray = explode($_SERVER['PATH_INFO'],'/');
然后,您可以像这样获得路径的最后一个差异化部分:
if (count($myPathArray)) {
$orderId = $myPathArray[count($myPathArray)-1];
} else {
$orderId = ''; // or whatever you please
}
您可以检查 URL 中的内容,例如:
function getUrlParameter = function(name, defaultValue) {
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( document.location.href );
if( results == null ) return defaultValue;
else return results[1];
};
如果您的 URL 是,test.php?a=toto
那么您必须在 pageA 中使用 toto :
var pageA = getUrlParameter("toto");
编辑:如果您只想要路径部分的结尾,请查看document.location.pathname
如果您的 url 变量名称在每个页面上都不同,您可以使用 if 语句
if (isset($_GET['vara'])) {
// Do thing A
}
elseif (isset($_GET['varb'])) {
// Do thing b
}