2

If I have, in javascript, something like:

entriesObj1 = new Object();
entriesObj1.entryId = "abc";
entriesObj1.mediaType = 2;
entriesObj2 = new Object();
entriesObj2.entryId = "def";
entriesObj2.mediaType = 1;

var entries = new Array();

entries[0] = entriesObj1;
entries[1] = entriesObj2;

What is the best method to pass it to php through an HTTP POST?

I've tried a jQuery plugin to convert the array to JSON. I've tried to create multiple hidden fields named "entries[]", each one with the JSON string. Somehow, I can't seem to decode my data with PHP's json_decode.

EDIT: I tried changing the JSON plugin used to the one @Michal indicated and the results I get are the same:

Javascript

[
    {"disciplina":"sdfsdfsdfsd","titulo":"sdfsdfsdf","componentes":"Bloco Completo"},
    {"disciplina":"sdfsdfsdfsd","titulo":"sdfsdfsdf","componentes":"Bloco Completo"}    
]

PHP Vardump:

string(756) "
[
    {\"disciplina\":\"sdfsdfsdfsd\",\"titulo\":\"sdfsdfsdf\",\"componentes\":\"Bloco Completo\"},
    {\"disciplina\":\"sdfsdfsdfsd\",\"titulo\":\"sdfsdfsdf\",\"componentes\":\"Bloco Completo\"}
]
"

When I use PHP's json_decode, I get NULL.

var_dump(json_decode($_REQUEST['entries']));

Output:

NULL
outis
  • 75,655
  • 22
  • 151
  • 221
André Alçada Padez
  • 10,987
  • 24
  • 67
  • 120

3 Answers3

1

You need to convert JSON to a string (use JSON stringifier (https://github.com/douglascrockford/JSON-js) and POST the string (as a field value) to the PHP script which does json_decode()

Michal
  • 13,439
  • 3
  • 35
  • 33
1

Concat it using some characters like _ or %% then pass it to PHP.

In PHP file:

$ar = array();
$ar = explode('special_char',string pass from js);
echo "pre";print_r($ar);
echo "/pre";
Shadow The GPT Wizard
  • 66,030
  • 26
  • 140
  • 208
Rukmi Patel
  • 2,619
  • 9
  • 29
  • 41
0

well, the trouble seemed to be with the quotes that were being passed in the post, so i just replaced the quotes with open strings to my $_REQUEST.

André Alçada Padez
  • 10,987
  • 24
  • 67
  • 120