2016-04-13 8 views
-2

ちょっと、私はjavascript変数のurlから値を取得しようとしています。 ここにデモURLがあります:http://localhost/product.php?prod_id=MQ==&action=add 私はurlからprod_id(MQ ==)にアクセスし、それをデコードしてjavascript変数に格納します。 これを実装するのに誰も助けてくれますか? ありがとうございます。javascript変数のurlからbase64でエンコードされた値を取得する方法

+1

あなたのアプローチは何ですか?あなたの問題は何ですか? – Thomas

+0

[JavaScriptでクエリ文字列値を取得するにはどうすればよいですか?](http://stackoverflow.com/questions/901115/how-can-i-get-query-values-in-javascript)/ Base64デコードその後に来る - と同様に十分簡単に​​検索する必要があります。 – CBroe

答えて

-1

まず、このようなPHPの変数にURLから値を取得する:

<?php 
    $x = base64_decode($_GET["prod_id"]); 
?>    

次に保存しますこの値を次のような非表示のテキストフィールドに入力します。

<input type="hidden" id="product_id" value="<?php echo $x; ?>"> 

この値をJavaScriptの変数に設定します。

$(document).ready(function(){ 
    $value = $("#product_id").val();  
} 
+0

質問にはPHPやjQueryについては言及していません。 – Paulpro

1

まず、ベース文字列をエスケープする必要があります。これは、有効なbase64文字がクエリ文字列(=など)で使用されているためです。これはjavascriptのescape()で行うことができます。

次に、クエリ文字列を解析し、値をunescape()してbase64文字列を再度取得する必要があります。ウェブ上には多くのリソースが存在するため、クエリ文字列の解析はおそらくこの質問の対象外です。

文字列を解析するには、まずlocation.searchから文字列を取得し、クエリ文字列(?を含む)を返します。あなたは '?'を必要としないので.substring(1)を使ってそれを切り捨てることをお勧めします。次に、アンダースコア '&'の文字列をsplit()して、 ['prod_id = MQ =='、 'action = add']のような配列を取得します。最後に、その配列の各文字列を取り出し、最初の '='で分割します。これは、最初のものがキー、2番目が値であるArray(2)を与えます。

0

これは現代のブラウザでも機能します。あなたが正常な機能を矢印の機能を交換する場合は、IE 10で動作するようにもにすることができます。

function getFromQueryStringAndDecode (query) { 
    var base64 = location.search.substr(1).split(/&/g) 
     .map(x => x.split(/^([^=]*)=/).slice(1)) 
     .filter(x => x[0] === query)[0][1] 
    ; 
    return atob(base64); 
} 

// Usage: 
getFromQueryStringAndDecode('prod_id'); // '1' 
関連する問題