簡體   English   中英

使用jQuery將數組傳遞到GET URL

[英]Pass array into GET URL using 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];
 }
?>

我要去哪里錯了?

您正在錯誤地使用jQuery GET請求。 您將使用

  window.location.href 

當您嘗試更改當前網頁的位置時。

嘗試以下方法:

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

我假設ARRAY是指包含括號{}?

如果是這樣,您的問題實際上是php部分。 json_encode正在創建適當的json對象。 然后將對象本身(而不是字符串)添加到URL AS。 您實際上希望它是一個字符串。

這行代碼: var cart = <?php echo json_encode($carts); ?>; var cart = <?php echo json_encode($carts); ?>; 是主要問題。

將其轉換為: var cart = "<?php echo json_encode($carts); ?>";

使用$ .param()函數轉換參數以獲取查詢字符串。

您直接將Json初始化為param,但沒有轉換為查詢字符串。

上面的函數會將Json轉換為查詢字符串

嘗試使用javascript函數JSON.stringify()轉換為json。

注意:請勿通過URL發送長數據。 通過url發送數據有一個限制,如果超出限制,它將最終導致損壞的數據。 對於大數據,請使用POST方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM