2011-06-02 72 views
0

我試圖通過.ajax()向PHP腳本發送兩個單獨的信息組進行處理並運行成問題。通過.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); 
}) 
}); 

任何指針將不勝感激。謝謝!

+0

計時器可以在服務器端設置,所以用戶不能操縱它。你可以使用會話變量。前端定時器可以簡單地變成虛擬的 – Ibu 2011-06-02 04:59:31

回答

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); 
}); 
+0

有趣的。我應該能夠通過使用$ _POST ['count']將structure_process.php中的計數數據拉出來?我可能會錯過一些東西,但我只是嘗試了你的代碼並通過$ _POST訪問了計數器,並且無法得到它 – 2011-06-02 05:18:23

+0

是的,這會(應該)向POST數據添加一個名爲'count'的附加值。 – 2011-06-02 05:34:45

+0

+1爲'$ .param()' – diEcho 2011-06-02 06:06:57

相關問題