2015-04-18 3 views
0

Ладно, я часами цепляюсь за это и расстраиваюсь. Я хочу создать форму приложения с помощью ajax. Я прохожу ассоциативный массив с огромными массивами вложенных в него:jQuery's .jax потеряет данные?

[ 
    "foo": x, 
    "bar": y, 
    // ... 
] 

Here является примером того, что x or y может выглядеть (это слишком огромный, чтобы разместить его здесь). Это в основном только объект с вложенными массивами в нем:

{ 
    lastModified: 1243245656 
    some: x 
    other: y 
    keys: z 
    feed: [ ... ] 
    items: [ ... ] 
    // ... 
} 

Так что мой ассоциативный массив added_toons хотел бы это:

[ 
    "foo": { 
     lastModified: 1243245656 
     some: x 
     other: y 
     keys: z 
     feed: [ ... ] 
     items: [ ... ] 
     // ... 
    }, 
    "bar": { 
     lastModified: 1243245656 
     some: x 
     other: y 
     keys: z 
     feed: [ ... ] 
     items: [ ... ] 
     // ... 
    }, 
    // .. 
] 

Здесь возникает проблема: Когда я оцениваю мой массив прямо перед тем, как передать его ajax все в порядке. Как только я получаю его на моем сервере php, в каждом toon отсутствуют массивы. items и feed например.
Я действительно не знаю, что происходит.

Так что я прошу помочь, чтобы устранить эту проблему. AFAIK не должно быть проблемой с экранированием, поскольку jQuery уже делает это для меня.


Мой JS код

console.info(added_toons); // everything is fine here 
    $.ajax({ 
     url: '...', 
     type: 'post', 
     data: { 
      'action': 'submit', 
      // ... 
      'toons': added_toons 
     }, 
     success: function (data, status) { 
      // ... 
     }, 
     error: function (xhr, desc, err) { 
      // .. 
     } 
    }); 

Мой PHP код

<?php 
if ($_POST['action'] == 'submit') { 
    // when I here evaluate $_POST it contains `toons` 
    // but each `toon` is missing keys 
} 
+0

Что происходит, когда вы используете JSOn.stringify? – Legends

ответ

1

Попробуйте этот путь, чтобы установить JSON.stringify для вашего added_toons

data: { 
     'action': 'submit', 
     //stringify is important to send array of objects 
     'toons': JSON.stringify(added_toons) 
     }, 

См. О JSON.stringify() здесь https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

+0

О, черт возьми, да, это работает, просто расшифруйте его на PHP еще раз .. Спасибо – Brettetete

+0

@Brettetete, рад, что он работает для вас, вы можете принять ответ, Желаем удачи. –

+0

Нет, я еще не могу. Не беспокойтесь, я соглашусь;) – Brettetete

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