2014-01-07 62 views
1

我試圖通過讓php文件返回javascript的結果返回到javascript來測試從javascript到php文件的成功提交數據。我在ajax文章中獲得了成功的回覆,但數據是空字符串。如何找出發佈的數據?這裏是我的代碼:php - 將ajax的值返回給javascript

JAVASCRIPT:

var benefitsArray = ["someData","someOtherData"]; 

$('#drop-submit').on('click',function(){ 
if (benefitsArray.length > 0){ 

    var formData = { "benefits" : benefitsArray }; 
    debugger; 
    $.ajax({ 
     url : "dd-receiver.php", 
     type: "POST", 
     data : formData, 
     success: function(data, textStatus, jqXHR) 
     { 
      console.log(data); //result is ""; 
      debugger; 
      //data - response from server 
     }, 
     error: function (jqXHR, textStatus, errorThrown) 
     { 
      console.log('failure'); 
     } 
    }); 
} 
}); 

PHP:

<?php 
echo $_POST["benefits"] 
?> 

UPDATE:

我得到了一個迴應,在PHP代碼,這樣做:

echo json_encode($_POST['benefits']); 

但問題是,在JavaScript中,如果我日誌中的數據,其結果是

"["someData","someOtherData"]"(字符串)

和不

["someData","someOtherData"](數組)

如何我得到它返回一個數組而不是一個字符串?

+1

是否呼應'的 「Hello World!」 '執行任何不同? –

+0

在點擊函數結束時是否添加'return false;'幫助?沒有它,你可能會提交表單,並且其餘的函數都沒有執行。 – Barmar

+2

順便說一句,回聲一個數組只會回顯單詞「數組」,而不是內容。 – Barmar

回答

2

你不解析發送給你的JSON。

你可以讓jQuery的加入dataType: 'JSON'$.ajax選項爲你做這個...

$.ajax({ 
    dataType: 'JSON', 
    url : "dd-receiver.php", 
    type: "POST", 
    data : formData, 
    success: function(data, textStatus, jqXHR) ... 

或手動JSON.parse

success: function(data, textStatus, jqXHR) { 
    benefits = JSON.parse(data); 
    ... 
    }