繁体   English   中英

使用Ajax发送序列化数据以及其他数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM