2

注文用と見積もり用の 2 つの異なるページで実行するスクリプトがあります。これらのページには、同じ URL の後に動的な文字列が続きます。このスクリプトで、あるページで 1 つのことを実行し、別のページで 1 つのことを実行するにはどうすればよいですか?

編集:この振り返りについてはあまり明確ではありませんでした。現在選択されている回答は、私が尋ねたものに対してうまく機能しますが、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 に答える