通过.ajax()发送多个数据片段,以便在PHP脚本中进行处理

时间:2011-06-02 04:54:44

标签: jquery ajax timer

我正在尝试通过.ajax()将两个单独的信息组发送到PHP脚本,以便处理和运行问题。

在这种情况下,用户输入页面并且1)计时器开始计数秒和2)用户必须填写表格的一系列输入。当用户单击提交按钮时,我想将两组信息(当前计时器计数和所有用户输入)发送到PHP脚本。

我可以成功发送一组信息或另一组,但无法找到同时通过.ajax()同时发送两组数据的方法。

这是我现在拥有的jQuery,它尝试发送两个数据但是失败了:

 $(document).ready(function(){
    var count = 0;
    setInterval(function(){
        count++;
        $('#timer').html(count + ' secs.');
    },1000);

// displays user structureand suggested answers on structure page
$('#process_structure').click(function () {
    var text = $.ajax ({
        type: "POST",
        url: "structure_process.php",
        data: $('#inputs_structure').serialize(), data: {count: count},
        dataType: "json",
        async: false,
    }).responseText;
    $('#test_ajax').html(text); 
})
});

任何指针都将非常感激。谢谢!

1 个答案:

答案 0 :(得分:1)

假设structure_process.php同时接受这两个数据,您可以使用serializeArray()代替serialize(),附加额外的数据,然后使用jQuery.param()转换数组到jQuery.ajax()将接受的字符串。

$('#process_structure').click(function () {
    var postData = $('#inputs_structure').serializeArray();
    postData.push({name: 'count', value: count});
    var text = $.ajax ({
        type: "POST",
        url: "structure_process.php",
        data: $.param(postData),
        dataType: "json",
        async: false,
    }).responseText;
    $('#test_ajax').html(text);
});