objeto de javascript a php mediante ajax de jquery

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 Kommentar

  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?

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea