Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Php + json + ajax

Estas en el tema de Php + json + ajax en el foro de Frameworks JS en Foros del Web. Bueno señores, llevo casi una semana intentando realizar algo con un programita que toy haciendo. Yo estoy trabajando con PHP 5.2.x - JSON - AJAX ...
  #1 (permalink)  
Antiguo 08/08/2008, 23:58
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Php + json + ajax

Bueno señores,
llevo casi una semana intentando realizar algo con un programita que toy haciendo.
Yo estoy trabajando con PHP 5.2.x - JSON - AJAX
y trabajo con Json_encode() y Json_decode() que viene con mi version de php

y el asunto es el siguiente:

Tengo el siguiente javascript:

Código:
$(document).ready(function()
{    
    // ON Click
    $("#signin").click(function(){
        var params1 = {
            userinfo: [{nameuser : "carlos",title : "mandarin"}]           
        };
        
        var params2 = {
            userinfo: {nameuser : "carlos",title : "mandarin"}           
        };
        
        $.ajax({
            async:          true,
            beforeSend:	FilterForm,
            success:	ShowResult,
            contentType:    "application/x-www-form-urlencoded",
            //target:		target,
            //processData:        false,
            data:               params1,
            url:		"servicio.php",
            type:      		"post",
            dataType:  		"json",
            clearForm: 		false,
            resetForm: 		false,
            timeout:   		3000,
            error:          MessageError
        });
        return false;
    });        
});

function ShowResult(data)
{   
   alert(data.nameuser);    
}
y en el archivo servicio.php tengo lo siguiente:

Código:
$x = $_POST['userinfo'];
    $t = json_decode($x);
    echo json_encode($t);

ENTONCES... lo que pretendo capturar en el lado del servidor el valor de 'userinfo', he probado con la variable params1 que tiene [] o sin ellos como la variable params2, y nada.

Por que quiero hacer lo anterior? para poder manejar una sola variable de parametros y hacer mas facil su manejo, ya que son muchos parametros.

Ayuda please!
  #2 (permalink)  
Antiguo 09/08/2008, 18:47
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Php + json + ajax

Bueno señores,
llevo casi una semana intentando realizar algo con un programita que toy haciendo.
Yo estoy trabajando con PHP 5.2.x - JSON - AJAX
y trabajo con Json_encode() y Json_decode() que viene con mi version de php

y el asunto es el siguiente:

Tengo el siguiente javascript:


Código:
$(document).ready(function()
{    
    // ON Click
    $("#signin").click(function(){
        var params1 = {
            userinfo: [{nameuser : "carlos",title : "mandarin"}]           
        };
        
        var params2 = {
            userinfo: {nameuser : "carlos",title : "mandarin"}           
        };
        
        $.ajax({
            async:          true,
            beforeSend:	FilterForm,
            success:	ShowResult,
            contentType:    "application/x-www-form-urlencoded",
            //target:		target,
            //processData:        false,
            data:               params1,
            url:		"servicio.php",
            type:      		"post",
            dataType:  		"json",
            clearForm: 		false,
            resetForm: 		false,
            timeout:   		3000,
            error:          MessageError
        });
        return false;
    });        
});

function ShowResult(data)
{   
   alert(data.nameuser);    
}
y en el archivo servicio.php tengo lo siguiente:


Código PHP:
$x $_POST['userinfo'];
    
$t json_decode($x);
    echo 
json_encode($t); 
ENTONCES... lo que pretendo capturar en el lado del servidor el valor de 'userinfo', que es {nameuser : "carlos",title : "mandarin"} para depues convertirla en un array y poder manupilar sus elementos como nameuser y passuser, he probado con la variable params1 que tiene [] o sin ellos como la variable params2, y nada.

Por que quiero hacer lo anterior? para poder manejar una sola variable de parametros y hacer mas facil su manejo, ya que son muchos parametros.

Ayuda please!
  #3 (permalink)  
Antiguo 09/08/2008, 21:15
Avatar de eZakto  
Fecha de Ingreso: julio-2008
Mensajes: 214
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Php + json + ajax

No entendí cual era tu problema, pero si es lo de transformar el objeto json en array, debes usar:
Código PHP:
$t json_decode($xtrue); 
Saludos.
  #4 (permalink)  
Antiguo 10/08/2008, 03:03
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Php + json + ajax

$() no es igual a document.getElementById?
  #5 (permalink)  
Antiguo 10/08/2008, 20:19
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Php + json + ajax

Bueno amigo el problema como lo comentaba es que estoy enviando unos parametros con notacion json a traves de jquery.$.ajax por medio de POST
y esos parametros se definen asi: {userinfo: {nameuser : "carlos",title : "mandarin"}};
pero en el lado del servidor, en el archivo php, lo intento capturar asi:
$x = $_POST['userinfo'] y supongo que $x me debe capturar el valor :{nameuser : "carlos",title : "mandarin"}
pero parece que no, o no se que toy haciendo mal, porque cuando intento devolver al cliente el valor de nameuser, me genera error.
Lo hago de la siguiente forma:

$x = $_POST['userinfo']; //supuestamente capturo {nameuser : "carlos",title : "mandarin"}
$t = json_decode($x); // aca lo convierto en array para manipularlo
echo $t->{'nameuser'}; // aca deberia imprimir "carlos" pero no

No he podido hacer eso, que podria estar haciendo mal???????
  #6 (permalink)  
Antiguo 10/08/2008, 20:27
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Php + json + ajax

Bueno amigo el problema como lo comentaba es que estoy enviando unos parametros con notacion json a traves de jquery.$.ajax por medio de POST
y esos parametros se definen asi: {userinfo: {nameuser : "carlos",title : "mandarin"}};
pero en el lado del servidor, en el archivo php, lo intento capturar asi:
$x = $_POST['userinfo'] y supongo que $x me debe capturar el valor :{nameuser : "carlos",title : "mandarin"}
pero parece que no, o no se que toy haciendo mal, porque cuando intento devolver al cliente el valor de nameuser, me genera error.
Lo hago de la siguiente forma:

$x = $_POST['userinfo']; //supuestamente capturo {nameuser : "carlos",title : "mandarin"}
$t = json_decode($x); // aca lo convierto en array para manipularlo
echo $t->{'nameuser'}; // aca deberia imprimir "carlos" pero no

No he podido hacer eso, que podria estar haciendo mal???????
  #7 (permalink)  
Antiguo 10/08/2008, 20:33
Avatar de eZakto  
Fecha de Ingreso: julio-2008
Mensajes: 214
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Php + json + ajax

Haz un var_dump($_POST['userinfo']) y mira que te sale.
  #8 (permalink)  
Antiguo 10/08/2008, 20:51
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Php + json + ajax

amigo, si toy utilizado la funcion $.ajax del jquery desde el cliente y toy visualizando los resultados a traves de la funcion definida en el paramatro success : respuesta(dato)
como podria ver de una forma facil lo que me ta llegando al servidor por el medio POST??

Tu me sugieres que haga un var_dump al post pero como lo visualizo? o como puedo hacer?
  #9 (permalink)  
Antiguo 11/08/2008, 08:18
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: Php + json + ajax

Lo que puedes hacer es escribirlo en un archivo temporal en el server usando fopen/fwrite/fclose.

Saludos.

Tema trasladado a AJAX.
  #10 (permalink)  
Antiguo 11/08/2008, 12:08
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Php + json + ajax

bueno amigo, ahi esta el error, al lograr ver que tiene $_POST['userinfo'], me arroja lo siguiente: [object Object]

y entonces?? ahora si me perdi :(
  #11 (permalink)  
Antiguo 11/08/2008, 12:11
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: Php + json + ajax

Prueba usar var_dump( $_POST ); para que veas la estructura.

Saludos.
  #12 (permalink)  
Antiguo 11/08/2008, 15:01
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Php + json + ajax

el var_dump del $_post no me lo guarda :(
  #13 (permalink)  
Antiguo 11/08/2008, 15:39
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: Php + json + ajax

Hola haffe,

Es $_POST, no $_post, y debes de usar en dado caso las funciones de salida:
Código PHP:
ob_start();
var_dump$_POST );
$var ob_get_clean(); 
Posteriormente guardas $var en el archivo de texto, por otro lado te recomiendo usar el Firebug de Firefox, tiene herramientas para ver exactamente que datos estas enviando y recibiendo via una consulta AJAX.

Saludos.
  #14 (permalink)  
Antiguo 11/08/2008, 15:54
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Php + json + ajax

Bueno amigo, agradezco tu ayuda y tu paciencia,
Te muestro los resultados:

Con codigo: var_dump( $_POST );
Su resultado es:
array(1) {
["userinfo"]=>
string(15) "[object Object]"
}

Con codigo: var_dump(($_POST['userinfo']) );
Su resultado es:
string(15) "[object Object]"

Con codigo: var_dump(json_decode($_POST['userinfo']) );
Su resultado es:
NULL

Como hago entonces para leer un valor en notacion json, dentro de un json, tal cual como lo tengo definido en la funcion $.ajax en el cliente:
var params = {userinfo:[{nameuser:"carlos", passuser:"mandarin"}]};
  #15 (permalink)  
Antiguo 11/08/2008, 16:25
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: Php + json + ajax

Al parecer tu clase que estas usando no te decodifica automaticamente y las envia por POST, si te fijas, el resultado es [object Object], lo que indica que la litreral "object Object" es lo que esta enviando.

Necesitas ver la documentación de tu clase para saber como enviar desde tu clase.

Saludos.
  #16 (permalink)  
Antiguo 11/08/2008, 16:34
 
Fecha de Ingreso: agosto-2008
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Php + json + ajax

Si, revisare eso, aunque toy usando la ultima libreria de jquery, la jquery-1.2.6.js

y eh visto varios ejemplos donde hacen cosas parecidas!

Mi gracias amigo,
Agradezco tu ayuda, (Y)
  #17 (permalink)  
Antiguo 05/09/2008, 00:39
 
Fecha de Ingreso: septiembre-2008
Mensajes: 2
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Php + json + ajax

Hola,

A mi me ocurre lo mismo

Javascript

var param = {method: "CREAR"};

PHP

$sPeticion = $_POST['param'];
$oJson = new Services_JSON();
$vPeticion=$oJson->decode($sPeticion);
$sMetod =$sPeticion."<br/>";


Esto me imprime por pantalla [object Object], podriaís decirme si habéis encontrado el problema.

Un saludo
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:07.