Как я могу получить serializableArray jQuery, который содержит один объект массива в php?

Как я могу сериализовать массив объектов в jquery в php?

У меня есть это:

консольный журнал структуры массива

Мне нужно получить этот массив, отправленный jQuery(vetDespesas) в php, чтобы создать мой sql-запрос.

Я пытаюсь использовать дамп php serialize, unserialize, но это не сработает.

Я использую это в jQuery:

   // this = my Form html

    var dataSend = $(this).serializeArray(); // other datas...

    dataSend.push({name:'moeda',value:moeda});
    dataSend.push({name:'moedaCotacao',value:moedaCotacao});
    **dataSend.push({name:'vetDespesas',value:vetDespesas});** object array

а на php как написать код?

$requisitadopor = $_POST['requisitadopor'];
$autorizadopor = $_POST['autorizadopor'];
$departamento = $_POST['departamento'];
$unidade = $_POST['unidade'];

var_dump($_POST['vetDespesas']);  // doesn't work =/ (array of objects)


vetDespesas = JSON.stringify(vetDespesas);

и я использую php:

    $a = json_decode($_POST['vetDespesas']);
    var_dump($a[0]);

Моя хромированная консольная печать:

object(stdClass)[2] public 'dataDespesa' => string '15/12/2015' (length=10) public 'descDespesa' => string 'teste1' (length=6) public 'budgetDespesa' => string '001 001 0E2R' (length=12) public 'valorDespesa' => string '2133.33' (length=7)

Как я могу получить доступ к этим данным?


person felipe muner    schedule 15.12.2015    source источник
comment
Имейте в виду, что вы можете добавлять изображения в stackoverflow, для этого вам не нужны внешние страницы (которые могут выйти из строя и, следовательно, навредить вопросу в будущем). В этом случае лучше было бы скопировать файл console.log. Кроме того, держите свой текст кратким и к проблеме.   -  person k0pernikus    schedule 16.12.2015
comment
спасибо k0pernikus следующие ответы сделаю =)   -  person felipe muner    schedule 16.12.2015


Ответы (1)


Вы должны преобразовать его в строку JSON перед отправкой в ​​PHP:

vetDespesas = JSON.stringify(vetDespesas);

И чтобы получить объект в PHP-коде, вы должны использовать json_decode() :

$my_object = json_decode($_POST['vetDespesas']);

Вы можете получить доступ к атрибутам object(stdClass), используя ->, например:

echo $my_object->dataDespesa;
echo $my_object->budgetDespesa;

Надеюсь это поможет.

person Zakaria Acharki    schedule 15.12.2015
comment
Нет =/ я использую функцию var_dump, и результат был следующим: ‹pre class='xdebug-var-dump' dir='ltr'›‹small›string‹/small› ‹font color='#cc0000'›'[object Object ],[объект Объект],[объект Объект]'‹/font› ‹i›(length=47)‹/i› ‹/pre› - person felipe muner; 16.12.2015
comment
где вы инициализируете vetDespesas в javascript? - person Zakaria Acharki; 16.12.2015
comment
мой vetDespesa был инициализирован в javascript и является правильным.. var vetDespesas = criaVetorObjDespesa(); var dataSend = $(this).serializeArray(); dataSend.push({имя:'vetDespesas', значение:vetDespesas}); - person felipe muner; 16.12.2015
comment
я пробовал ваше обновление, но не работает. консоль google chrome: Примечание: преобразование массива в строку в C:\wamp\www\britanicaBlueForm2\templatesHTML\php\adiantamento.php в строке 34..... Моя строка 34 => $a = json_decode($_POST['vetDespesas ']); эхо $а[0]; .... извините, я новичок в php rs - person felipe muner; 16.12.2015
comment
Это правда, потому что $a[0]; вернет первый объект в vetDespesas, это массив, поэтому вы должны использовать print_r($a[0]), а не echo. - person Zakaria Acharki; 16.12.2015
comment
ты герой хахахаха РАБОТАЮ =) я использую: print_r($a[0]-›dataDespesa); для проверки =) теперь, что вы скажете мне, как лучше всего перебрать этот объект массива? я думаю, что это лучший способ: foreach ($a as $valor) { $sql = вставить в адиантаменто values('.$valor-›dataDespesa.','.$valor-›budgetDespesa.','.$valor -›доблестьDespesa.'); mysql($sql); } - person felipe muner; 16.12.2015
comment
ты откуда? Давай поговорим о развитии =) ты мне очень помог... когда ты приедешь в Бразилию, поговори со мной, и я познакомлю тебя с тем, что в этой стране лучше, хахахахаха - person felipe muner; 16.12.2015