使用jQuery将数组传递到GET URL

时间:2016-04-11 17:29:14

标签: php jquery

我正在尝试将数组传递给GET URL但是它将以add_cart?ids=1,2,3,4,5而不是正确发送。

这是我的jquery代码,它将数组添加到URL并将用户引导到下一页:

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

然后在addcart.php页面上,我无法获得这些值。

理想情况下,在此页面上,我想要1,2,3,4,5

形式的值

这是该页面的代码:

<?php
session_start();

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

我哪里错了?

4 个答案:

答案 0 :(得分:0)

您正在使用jQuery GET请求有点错误。你将使用

  window.location.href 

当您尝试更改当前网页的位置时。

请改为尝试:

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

答案 1 :(得分:0)

我假设ARRAY你想要包括大括号{}?

如果是这样,你的问题实际上就是php部分。 json_encode正在创建一个合适的json对象。然后将其添加到URL作为对象本身,而不是字符串。你实际上希望它是一个字符串。

这一行:var cart = <?php echo json_encode($carts); ?>;是主要问题。

将其转换为:var cart = "<?php echo json_encode($carts); ?>";

答案 2 :(得分:0)

使用$ .param()函数将params转换为获取查询字符串。

您直接将Json初始化为param但不转换为查询字符串。

上面的函数会将Json转换为查询字符串

答案 3 :(得分:0)

尝试使用javascript函数JSON.stringify()转换为json。

注意:不要通过URL发送长数据。通过url发送数据有一个限制,如果超出限制,它将以损坏的数据结束。对于大数据,请使用POST方法。