[英]Send additional JSON data along with an existing AJAX post that is sending Serialized Form data
[英]Sending serialized data plus additional data with Ajax
我正在尝试使用ajax发布和一些其他数据发送序列化数据。 我尝试了以下方法:
$("#prw").on('click', function(e){
var url = window.location.origin + "/newsletter/preview";
var title = $('#title').val();
var intro = $('#intro').val();
var array = table.$('input[type="checkbox"], input[type="text"]').serialize() + "&title=" + title + "&intro=" + intro;
$.ajax({
type: "POST",
url: url,
data: array
}).done(function(data){
console.log("Response", data);
});
e.preventDefault();
});
但它仅显示复选框和文本,而不显示响应中的标题和简介。 我也尝试过这种方法:
$("#prw").on('click', function(e){
var url = window.location.origin + "/newsletter/preview";
var title = $('#title').val();
var intro = $('#intro').val();
var array = table.$('input[type="checkbox"], input[type="text"]').serializeArray();
array.push({name: 'title', value: title});
array.push({name: 'intro', value: intro});
$.ajax({
type: "POST",
url: url,
data: array
}).done(function(data){
console.log("Response", data);
});
e.preventDefault();
});
它也不起作用。 此网址转到CodeIgniter控制器:
function preview() {
$post = $this->input->post();
print_r($_POST);
return $post;
}
创建对象要容易得多:
var url = window.location.origin + "/newsletter/preview";
var data = { title: $('#title').val() , intro : $('#intro').val() };
// I don't know what you table is..
// if you tell me the plugin I can help sending that that either
$.ajax({
type: "POST",
url: url,
data: $.param(data)
}).done(function(data){
console.log("Response", data);
});
首先,请注意,答案可能会根据API端点的期望而有所不同。 您能告诉我们您要达到的控制器/方法吗?
话虽如此,我猜想端点需要一个JSON对象(可能是字符串化的)。
基于这些假设,请尝试以下操作:
$("#prw").on('click', function(e){
var url = window.location.origin + "/newsletter/preview";
var title = $('#title').val();
var intro = $('#intro').val();
// That table reference is a bit unclear to me, is this a 3rd party library?
var checkbox = false; // Grab your checkbox value here
var inputVal = null; // Grab your input value here
var data = {
title: title,
intro: intro,
checkbox: checkbox,
inputVal: inputVal
};
$.ajax({
type: "POST",
url: url,
data: JSON.stringify(data),
contentType: 'application/json'
}).done(function(data){
console.log("Response", data);
});
e.preventDefault();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.