2014-01-07 3 views
1

Я пытаюсь проверить успешное представление данных из javascript в php-файл, если этот файл php возвращает результаты javascript-сообщения обратно в javascript. Я получаю успешный ответ в сообщении ajax, но данные представляют собой пустую строку. Как узнать, какие данные были опубликованы? Вот мой код:php - вернуть значение ajax post обратно в 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;' в конце действия функции click? Без него вы, вероятно, отправляете форму, и ни одна из остальных функций не выполняется. – Barmar

+2

BTW, повторяя массив, просто повторит слово «Массив», а не содержимое. – 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); 
    ... 
    } 
Смежные вопросы