Tengo un array o un objeto de javascript que me crea como este:
arr[arr.length]=obj
donde el obj es un clásico de la cadena JSON como {"id":1}.

Así arr parece ser un array de Objetos de JavaScript.

Puedo acceder a él como esto:
arr[1], arr[2].
Podría ser, incluso, como alert(arr[1].id);

Si hago:
alert(JSON.stringify(arr));
Me sale lo siguiente:

[{"id":"2305","col":"1"},{"id":"2308","col":"1"},{"id":"2307","col":"1"},{"id":"2306","col":"1"}]

Mientras que
alert(arr);
Me da algo como:

[object Object],[object Object],[object Object],[object Object],[object Object]

Ahora tengo que pasarlo a un script PHP usando jQuery, AJAX método. Pero parece que no se puede conseguir sólo en combinación cadenas como:

{"id":"2305","col":"1"} o {"id":"2305","col":"1","id":"2305","col":"1"}

Pero JSON.stringify analiza el arr objeto correctamente y en el anterior ejemplo de la cadena he válida parece ser una cadena JSON. ¿Cómo puedo pasar a PHP, debo cambiar todo el formato de la estructura a ser como la última muestra?

UPD:
se me olvidó mencionar que PHP POST de la matriz es nulo si enviar ‘{},{},{}’ cuerda en lugar de ‘{}’ de la cadena.

UPD:
He reescrito el código que se generó la cadena. Ahora tengo una cadena como esta:

{"2305":"1","2306":"1"}

Funciona si se lo paso a PHP directamente, como este:

   $.post({url: '../getItems2Cart.php', data:{"2305":"1","2306":"1"} ,
       success: function(response){alert(response);}
   });

Si puedo enviar como esta, php retorno vacío de la matriz de CORREOS:

$.post({url: '../getItems2Cart.php', data: JSON.stringify(str),.
       success: function(response){alert(response);}
});

Tener claro, alerta devuelve un JSON adecuado fuerte ahora:

alert('json str to php '+JSON.stringify(str));
//json str to php {"2305":"1","2306":"1"}

Ahh.. sí, y str es un objeto de javascript, no de la cadena.

InformationsquelleAutor user1953035 | 2013-01-06

1 Comentario

  1. 5

    Puede enviar el JSON y uso json_decode() para convertirlo en un array de php.

    $.post('server/path', { jsonData: JSON.stringify(arr)}, function(response){
       /* do something with response if needed*/
    });

    en php:

    $arr=json_decode( $_POST['jsonData'] );
    /* return first ID as test*/
    echo $arr[0]['id'];
    /* or dump whole array as response to ajax:*/
    print_r($arr);
    • Lo siento, se me olvidó mencionar que PHP POST de la matriz es nulo si enviar {},{},{} cuerda en lugar de {} cadena.
    • no está claro lo que se está enviando. Si coincide con el código después de I get the following: en cuestión debería funcionar bien. I don’; t entender lo que {},{},{} vs {} medios. Primero debe ser una matriz [{},{},{}]
    • he actualizado a la pregunta, revisa por favor
    • que no siga mi ejemplo y el establecimiento de una clave para la cadena JSON. POST necesidades de pares clave/valor… si usted acaba de enviar una cadena de sólo el envío de un valor de $_POST estará vacía
    • Es probable que no obtenga su ejemplo. Si me envía la cadena directamente – funciona. Si me stringify el objeto, no. Probablemente hay un pequeño detalle, me he perdido.
    • ¿qué quiere decir que no llega?? … es el código de mi respuesta
    • Así que hice esto ya. No voy a entrar en el serverside a diferencia de si me pase de una simple cuerda. Los ejemplos en la segunda parte de mi primera pregunta. Gracias.
    • Y este sitio se olvidó de mi cuenta de google y se hizo una nueva ((
    • ustedes han hecho caso omiso de la forma en que he creado el objeto de datos… me dio la jsonData clave, y cómo la reciben en php
    • Me da Notice: Undefined index: jsonData en /var/www/myelec/getItems2Cart.php en la línea 2
    • De todos modos yo era la recuperación de la totalidad de la matriz de CORREOS por print_r($_POST);
    • Wow, he repetido el código que me dio y responsed mí con una adecuada matriz de CORREOS )). Lo siento por ser desatento. Así que, ¿cuál es el secreto, ¿por qué no funciona como debería ser según la documentación?
    • Gracias hombre, incluso google no sabe lo que hacer ))
    • Ya he explicado el key/value problema que se metió en la generación de su propio código. ¿Qué google tiene que ver con algo?

Dejar respuesta

Please enter your comment!
Please enter your name here