[英]Codeigniter AJAX passing array to another page via POST
是否可以通過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
}
});
}
還是有其他替代方法?
我將這個問題分解為兩個問題:
是否可以將通過復選框填充的數組傳遞到另一個頁面?
為什么是,在輸入名稱中使用方括號將其制成數組。
<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填寫所有需要的信息並提交。 這是關於此的stackOverflow帖子
不過,在您的情況下,我將僅使用您已經擁有的表單(帶有多個復選框),因為您可以輕松地通過表單傳遞一組復選框值。
發出POST請求時,data參數不是字符串。 將所有表單數據保存到一個變量中,然后將該變量分配給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
在“成功”內部,您可以解析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
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.