2016-04-11 10 views
0

私はGET URLに配列を渡そうとしていますが、正しく送信するのではなくadd_cart?ids=1,2,3,4,5となります。jQueryを使用してGET URLに配列を渡す

$(document).on("click", 'button.btn_checkout', function(){ 
    var cart = <?php echo json_encode($carts); ?>; 
    window.location.href = "addcart.php?cart=" + cart; 
}); 

そしてaddcart.phpページに、私はこれらの値を取得することができません:

これはURLに配列を追加し、次のページにユーザーを誘導する私のjqueryコードです。私が間違っているつもりです

<?php 
session_start(); 

$cart = isset($_GET['cart']) ? $_GET['cart'] : ""; 
$cart = explode(",", $_GET['cart']); 
for($i = 0; $i<$cart.size; $i++){ 
    echo $cart[$i]; 
} 
?> 

は、理想的には、このページに、私は、フォーム1,2,3,4,5

この中の値は、そのページのコードでありたいですか?

+2

あなたは 'add_cart?ids = 1,2,3,4,5'となっているとし、後で' 1,2,3,4,5'の形式で値を指定したいとします。あなたの望むURLフォーマットは何ですか? –

+0

私はjqueryの代わりに話すことができませんが、ほとんどのフレームワークは "Shebang"を使用しています。あなたが研究すべきもう一つのコンセプトはjavascript pushstateです。 –

+0

'1,2,3,4,5'のような値はすべてエコーしません –

答えて

0

あなたは少し間違ってjQuery GETリクエストを使用しています。現在のWebページの場所を変更しようとすると、

window.location.href 

を使用します。

は、代わりにこれを試してみてください:

$(document).on("click", 'button.btn_checkout', function(){ 
     var result = <?php echo json_encode($carts); ?>; 
     $.get("addcart.php", { cart: result }); 
    }); 
0

私はあなたが中括弧{}を含めることを意味ARRAYで仮定していますか?

もしそうなら、あなたの問題は実際にはPHPの部分です。 json_encodeが適切なjsonオブジェクトを作成しています。それはオブジェクト自体のURLに追加され、文字列ではありません。あなたは実際にそれが文字列であることを望んでいます。

この行:var cart = <?php echo json_encode($carts); ?>;が主な問題です。

のようなものに変換します。クエリ文字列を取得するためのparamsを変換するvar cart = "<?php echo json_encode($carts); ?>";

0

使用$ .PARAM()関数を。

Jsonを直接paramに初期化していますが、クエリ文字列には変換しません。機能上

は、JSONに変換する)javascript関数JSON.stringifyを(使用してみてください文字列

0

を照会するためにJSONを変換します。

注:長いデータをURLに送信しないでください。 URLを介してデータを送信するには制限があり、制限を超えた場合には破損したデータになります。大きなデータの場合は、POSTメソッドを使用します。

関連する問題