2016-11-23 4 views
0

я заполнил массив так:Ajax: отправить Array на php правильно?

JS

playersDone["gk"] = "test"; 
playersDone["df1"] = "test2"; 

и мой Аякса часть выглядит следующим образом:

$.ajax({ 
    url:'writeDraftedTeamToDraftsDatabase.php', 
    type:'post', 
    data:{players: JSON.stringify(playersDone)}, 

    success: function (res) {       
     alert(res);      
    } 
}); 

и мой PHP выглядит это:

echo $_POST['players']['gk']; 

но таким образом я не могу правильно получить значение моего элемента массива!

Как вы видите, я уже пытался передать массив с помощью JSON.stringify(), но безуспешно!

Не могли бы вы дать мне подсказку, где моя ошибка?

Спасибо вам большое!

+0

Почему вы вызываете JSON.stringify, когда метод AJAX уже сериализует данные для PHP? – zzzzBov

+0

, потому что я получаю это из другого вопроса stackoverflow .... – nbg15

ответ

0

нормально вот мое решение:

JS/AJAX

var playersDone = {}; // THIS IS IMPORTANT, not var playersDone = [] becasue js works with objects not with assoc. arrays !!! 

$.ajax({ 
      url:'writeDraftedTeamToDraftsDatabase.php', 
      type:'post', 
      data:{'players':playersDone}, 
      success: function (res) {       
       alert(res);       
      } 
     }); 

PHP

$data = $_POST['players'];  
echo json_encode($data); 

Edit: также очень хороший способ заключается в использовании инструмент webDevelopsers Firefox, чтобы проверить заголовок запроса Ajax, после этого я узнал, что мой контент запроса w как пустой ...;), и я знал, что «пустая строка была отправлена», что-то не так на стороне js/client!

Смежные вопросы