jquery ajax将form.serialize,variable和array all作为数据发送

时间:2015-06-16 11:38:17

标签: javascript php jquery ajax

我有以下jquery AJAX,

var reply_content = $('#summernote_1').code();

$.ajax({
        type:"POST",
        url: "<?php echo base_url();?>index.php/test/send_reply/"+<?php echo $testinfo->test_id;?>,
        data: $("#test_fm").serialize()+'&file=' + file + '&test_subject=<?php echo $testinfo->testsubject;?>' +'&reply_content=' + reply_content,
});

我有文件变量,数组包含如下

array([0]=> a [1]=>b),

这是我用AJAX传递的其他函数返回的,

我如何在AJAX中传递它?

3 个答案:

答案 0 :(得分:0)

    var reply_content = $('#summernote_1').code();

    $.ajax({
            type:"POST",
            url: "<?php echo base_url();?>index.php/test/send_reply/"+<?php echo $testinfo->test_id;?>,
            data: {$("#test_fm").serialize()+'&file=' + file + '&test_subject=<?php echo $testinfo->testsubject;?>' +'&reply_content=' + reply_content},
    });

您可以使用serilizeArray()

答案 1 :(得分:0)

如果您在php中尝试它,那么您可以尝试这样:

$url = urlencode(serialize($your_array))

在数据中添加$url

data: {$("#test_fm").serialize()+"&file=<?php echo $url; ?>&test_subject=<?php echo $testinfo->testsubject;?>" +"&reply_content=" + reply_content}

并恢复您可以使用的变量

$arrVar = unserialize(urldecode($_POST['file']))

答案 2 :(得分:0)

您可以使用serializeArray()创建可以添加的对象。 在可能的情况下,将php与js分开也是一个好主意:

var url = "<?php echo base_url() . 'index.php/test/send_reply/' . $testinfo->test_id;?>";

var test_subject = "<?php echo $testinfo->testsubject;?>";

var data = $("#test_fm").serializeArray();

data.push(
    {
        file: file, 
        test_subject: test_subject
    }
);
$.ajax({
        type:"POST",
        url: url,
        data: data
});