Foros del Web » Programando para Internet » Jquery »

jquery.ajax + json + POST

Estas en el tema de jquery.ajax + json + POST en el foro de Jquery en Foros del Web. Bueno muchachos, Mis saludos, Tecnologias relacionadas: Código: - Jquery1.2.6 - PHP 5.2.x De nuevo escribo aca, para comentar mi problema, el cual se evidencio en ...
  #1 (permalink)  
Antiguo 15/08/2008, 14:34
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
jquery.ajax + json + POST

Bueno muchachos,
Mis saludos,

Tecnologias relacionadas:
Código:
- Jquery1.2.6
- PHP 5.2.x
De nuevo escribo aca, para comentar mi problema, el cual se evidencio en el foro:
http://www.forosdelweb.com/f77/php-json-ajax-613699/

Toda la web habla y comenta acerca del uso de Jquery.Ajax con envio de datos json a traves de Post, donde se muestran ejemplos sencillos como:

...

Código HTML:
var parametros = {"p1":"valor1", "p2":"valor2"};

$.ajax({
            async:          true,
            success:	ejecutarResultados,
            data:               parametros,
            url:		"proceso.php",
            type:      		"post",
            dataType:  		"json"
});
y pues bueno, eso funciona de maravilla, desde mi lado servidor puedo capturar los datos:

Código PHP:
echo $POST['p1'];  // y esto muestra 'valor1' 
Pero yo me he tropezado con un problema y es cuando intento enviar el siguiente parametro:

Código HTML:
var parametros = {
                                "letrasP":{"p1":"valor1", "p2":"valor2"}
                             };
y del lado del cliente si trato de obtener el valor de "letrasP" ocurre:

Código PHP:
$r json_decode($_POST['letrasP']);
echo 
var_dump($r); // esto muestra "[object Object]" 

Es decir que es posible que mi envio de datos desde el cliente atraves de $.ajax no se este serializando bien, y me este enviando el literal "[object Object]" al servidor,

Entonces como hago para enviar datos de notacion JSON de mas de un nivel de profundidad, con jquery utilizando $.ajax, y metodo POST ????????


Gracias por sus ayudas....
  #2 (permalink)  
Antiguo 15/08/2008, 15:05
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: jquery.ajax + json + POST

Segun la documentacion de jQuery no puedes hacer eso. Por esto, ves object object, porque estas enviando un objeto de javascript por la URL. Lo unico que puedes enviar como objeto es un arreglo ordenado como Key/Value, lo que te daria como query string http://localhost/algo.php?key=value

Consulta la documentacion de jquery:

http://docs.jquery.com/Ajax/jQuery.ajax#options
  #3 (permalink)  
Antiguo 15/08/2008, 16:02
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: jquery.ajax + json + POST

Entonces como podria enviarlo??
Asi:
var parametros = {
"letrasP":[{"p1":"valor1", "p2":"valor2"}]
};
o asi:
var parametros = {
"letrasP":["p1":"valor1", "p2":"valor2"]
};

Gracias,
  #4 (permalink)  
Antiguo 15/08/2008, 16:24
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: jquery.ajax + json + POST

Ok, intente enviando un array asi:

var paramentros = {"llave[]":["valor1","valor2"]};

y envio esto:

array(1) {
["letrasP"]=>
array(2) {
[0]=>
string(1) "valor1"
[1]=>
string(7) "valor2"
}
}

Ahi alguna forma de enviar los parametros de modo asociativos? algo como:

array(1) {
["letrasP"]=>
array(2) {
["p1"]=>
string(1) "valor1"
["p2"]=>
string(7) "valor2"
}
}


gracias
  #5 (permalink)  
Antiguo 18/08/2008, 07:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: jquery.ajax + json + POST

Prueba así:
Código:
var paramentros = {"llave[p1]":"valor1", "llave[p2]: "valor2"};
Saludos.
  #6 (permalink)  
Antiguo 01/07/2010, 04:27
 
Fecha de Ingreso: julio-2010
Mensajes: 1
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: jquery.ajax + json + POST

Hola, si es posible enviar un JSON desde javascript por ajax. Lo unico que debes hacer es usar la el método JSON.strinify(mi_objeto_json) de la siguiente forma

$.ajax({
url: 'mi_url',
type: 'POST',
data: {datos_json : JSON.stringify(mi_objeto_json)},
success: function(data){}
});

Del lado de PHP, para recuperar la variable en forma de array asociativo:

$array_asociativo = json_decode($_POST['datos_json'],true);

Espero haber ayudado.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 13:40.