Javascript Codeigniter AJAX通过POST将数组传递到另一个页面

Javascript Codeigniter AJAX通过POST将数组传递到另一个页面,javascript,php,ajax,codeigniter,Javascript,Php,Ajax,Codeigniter,是否可以通过AJAX POST将通过复选框填充的数组传递到另一个页面并导航到该页面 当前的场景是,我有一个带有复选框的表,允许用户选择复选框来支付多个项目。问题是将多个ID传递到付款页面。关于我如何做,有什么建议吗 这就是我到目前为止所做的: function pay(input){ var id = input; $.ajax({ method: "POST", url: "<?php echo site_url($this->dat

是否可以通过AJAX POST将通过复选框填充的数组传递到另一个页面并导航到该页面

当前的场景是,我有一个带有复选框的表,允许用户选择复选框来支付多个项目。问题是将多个ID传递到付款页面。关于我如何做,有什么建议吗

这就是我到目前为止所做的:

function pay(input){
    var id = input;
    $.ajax({
        method: "POST",
        url: "<?php echo site_url($this->data['controller'].'/Pay'); ?>",
        data:'id='+id,
        beforeSend: function () {
            $('.loading').show();
        },
        success: function(data){
            //what do i fill here
        }
    });
}
功能支付(输入){
变量id=输入;
$.ajax({
方法:“张贴”,
url:“”,
数据:'id='+id,
beforeSend:函数(){
$('.loading').show();
},
成功:功能(数据){
//我在这里填什么
}
});
}

或者是否有其他方法可以执行此操作?

发出POST请求时,数据参数不是字符串。将所有表单数据保存到一个变量中,并将该变量分配给POST调用的“data”元素。您可以这样做:

var myform = $('form').serialize(); // This will save all the form's data to the variable myform
然后

data: myform, // This will send what myform contains via POST
在“success”中,您可以解析POST响应中的信息。 之后,您可以使用以下命令重定向:

window.location.href = 'http://yourlink.here'; //this will redirect you to another page

通过一个数组,您可以将其发布到ajax

var check_box_array = [];

$("input:checkbox[name=type]:checked").each(function(){
    check_box_array.push($(this).val());
});
然后

 $.ajax({
        method: "POST",
        url: "<?php echo site_url($this->data['controller'].'/Pay'); ?>",
        data:{check_box_data:check_box_array},
        beforeSend: function () {
            $('.loading').show();
        },
        success: function(data){
            //what do i fill here
        }
    });
$.ajax({
方法:“张贴”,
url:“”,
数据:{复选框数据:复选框数组},
beforeSend:函数(){
$('.loading').show();
},
成功:功能(数据){
//我在这里填什么
}
});

我将此问题分为两个问题:

是否可以将通过复选框填充的数组传递给 另一页

为什么是在输入名称中使用方括号使其成为数组

<input type="checkbox" name="id[]" value="2">
<input type="checkbox" name="id[]" value="6">
我可以通过AJAX POST将数组传递到另一个页面并导航到该页面吗 页面

IIRC如果不使用肮脏的解决方法,这是不可能的。JavaScript和jQuery不提供此功能。
要找到解决方法,您必须意识到,您要做的只是使用POST参数导航到不同的页面。
表单不正是这样做的吗是的,他们有

我所说的肮脏的解决方法当然是一个隐藏的表单,您可以使用JS/jQuery填充所有需要的信息并提交它。是关于这件事的吗


不过,在您的情况下,我只会使用您已有的表单(带有多个复选框),因为您可以轻松地通过表单传递一组复选框值。

但我希望获得ID并在那里导航。Ids将从数据库中加载一个项目列表,以便我可以执行支付。对不起,ajax请求中的第一个url呢?这不是我要传递数据的url吗?但这只是将数据发送到支付页面。我也想在那里导航。您的方法将支付页面视为要调用的函数。
$selectedItemIDs = $_POST['id'];
// $selectedItemIDs is now [2, 6] if both checkboxes were selected.