[英]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.