2

我有一个在两个不同页面上运行的脚本,一个用于订单,一个用于报价。这些页面有一个相同的 url,后跟一个动态字符串。我该怎么做才能让这个脚本在一页上做一件事,在另一页上做一件事?

编辑:我对这个回顾不是很清楚,当前选择的答案确实适用于我的要求,但它不应该与 Magento 一起使用。Magento 内置了用于确定此信息的方法,您可能希望覆盖它而不是将脚本注入到 adminhtml 代码中。

4

4 回答 4

3

通过 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
}
于 2012-06-08T20:23:34.867 回答
2

您可以检查 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

于 2012-06-08T20:22:41.280 回答
1

如果您的 url 变量名称在每个页面上都不同,您可以使用 if 语句

if (isset($_GET['vara'])) {
    // Do thing A
}
elseif (isset($_GET['varb'])) {
    // Do thing b
}
于 2012-06-08T20:27:08.000 回答
1

使用$_GET检索 URL 中传递的变量。如果您在这个 Tizag 的新手有一些易于阅读的教程。通过传递变量的值,您可以确定您来自哪个页面。

于 2012-06-08T20:27:28.377 回答