区分具有相同URL的页面

时间:2012-06-08 20:19:42

标签: php javascript html magento

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

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

4 个答案:

答案 0 :(得分:3)

通过PHP中的$ _REQUEST查看URL中的参数。见这里:http://php.net/manual/en/reserved.variables.request.php

修改: 我从您的评论中看到您的网址与http://www.example.com/index.php/admin/sales_order/view/order_id/273151/相似。

如果它总是这样没有任何查询参数,那么你可能想要在PHP中解析$_SERVER['PATH_INFO']变量。

(见这里: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
}

答案 1 :(得分:2)

您可以查看网址中的内容,例如:

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];
};

如果您的网址为test.php?a=toto,那么您将在页面A中单击:

var pageA = getUrlParameter("toto");

编辑:如果您只想要路径部分的结尾,请查看document.location.pathname

答案 2 :(得分:1)

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

if (isset($_GET['vara'])) {
    // Do thing A
}
elseif (isset($_GET['varb'])) {
    // Do thing b
}

答案 3 :(得分:1)

使用$_GET检索URL中传递的变量。如果你在这个Tizag的新人有easy to read tutorials。通过传递变量的值,您可以确定要来自哪个页面。