是否可以通过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
}
});
}
或者是否有其他方法可以做到这一点?
答案 0 :(得分:1)
我将这个问题分解为两个问题:
是否可以传递通过复选框填充的数组 另一页?
为什么在输入名称中使用方括号使其成为数组。
<input type="checkbox" name="id[]" value="2">
<input type="checkbox" name="id[]" value="6">
在PHP中,您可以访问所选的项ID,如下所示:
$selectedItemIDs = $_POST['id'];
// $selectedItemIDs is now [2, 6] if both checkboxes were selected.
我可以通过AJAX POST将数组传递到另一个页面并导航到该页面 网页?
IIRC如果不使用肮脏的解决方法,这是不可能的。 JavaScript和jQuery不提供此功能 要找到解决方法,您必须意识到您要执行的操作只是使用POST参数导航到其他页面 唐的表格完全是这样吗? 是的,他们这样做了!
我正在谈论的肮脏的解决方法当然是一个隐藏的形式,你用JS / jQuery填充所有需要的信息并提交它。 Here是关于此
的stackOverflow帖子在您的情况下,我只会使用您已有的表单(带有多个复选框),因为您可以轻松地使用表单传递一组复选框值。
答案 1 :(得分:0)
发出POST请求时,data参数不是字符串。将所有表单数据保存到变量中,并将该变量分配给&#34;数据&#34; POST调用的元素。你可以这样做:
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
内部&#34;成功&#34;你可以从POST响应中解析信息。 之后,您可以使用以下方式重定向:
window.location.href = 'http://yourlink.here'; //this will redirect you to another page
答案 2 :(得分:0)
通过数组,您可以将其发布到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
}
});