我正在尝试将数组传递给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];
}
?>
我哪里错了?
答案 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方法。