Foros del Web » Programando para Internet » Jquery »

Formato del array de respuesta de un .get jquery ajax php

Estas en el tema de Formato del array de respuesta de un .get jquery ajax php en el foro de Jquery en Foros del Web. Hola, Estoy intentando traer a varios input el valor de un registro de una base de datos mysql a través del post de jquery, utilizando ...
  #1 (permalink)  
Antiguo 23/02/2011, 08:37
 
Fecha de Ingreso: diciembre-2010
Ubicación: granada
Mensajes: 31
Antigüedad: 14 años
Puntos: 0
Pregunta Formato del array de respuesta de un .get jquery ajax php

Hola,

Estoy intentando traer a varios input el valor de un registro de una base de datos mysql a través del post de jquery, utilizando ajax y php. Al hacer el post

Código:
$.get('search.php', data, function(resp){
, ejecuta la consulta en un archivo .php y el registro lo vuelca a un array json con el formato: {"codigo":"2","nombre":"ALEJANDRO MAR TINEZ","direccion":"calle de enmedio, n. 5"}

Código:
...
$matriz['value'] = $row['codigo'];
$matriz['nombre'] = $row['nombre'];
$matriz['direccion'] = $row['direccion'];
$matches[] = $matriz;
print json_encode($matches);
Todo hasta ahí, creo que correcto, pero a la hora de volcar los valores "codigo, nombre y direccion" a los correspondientes input

Código:
...
$("#codigo1").val(resp.codigo);
$("#nombre1").val(resp.nombre);
$("#direccion1").val(resp.direccion);
puedo comprobar con el firebug que "resp" contiene:
object {"codigo":"2","nombre":"ALEJANDRO MAR TINEZ","direccion":"calle de enmedio, n. 5"}
y .codigo, .nombre, .direccion contienen "undefined"....

He probado con resp.codigo, resp[codigo], resp['codigo'], resp[0].codigo... y miles de más ejemplos, y no lo consigo...

Por favor, alguien que me diga que me falta? como es el formato del array u objeto "resp"?

Gracias anticipadas.

Última edición por albeolo; 23/02/2011 a las 08:45
  #2 (permalink)  
Antiguo 23/02/2011, 12:09
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 20 años
Puntos: 145
Respuesta: Formato del array de respuesta de un .get jquery ajax php

Prueba directamente con $.getJSON
http://api.jquery.com/jQuery.getJSON/

o bien con $ajax pero con el dataType: 'json'.


avisa si te funciona.

saludos.
__________________
http://chicho.ninja yiaaaa
  #3 (permalink)  
Antiguo 23/02/2011, 14:06
 
Fecha de Ingreso: diciembre-2010
Ubicación: granada
Mensajes: 31
Antigüedad: 14 años
Puntos: 0
Pregunta Respuesta: Formato del array de respuesta de un .get jquery ajax php

Hola Cherivera, gracias por tu interés.

He probado con $.getJSON, y me pasa lo mismo... el caso es que la respuesta del get es correcta, trae la información que solicito:

[{"codigo":"x","nombre":"xxxxxxxxxxxxxxxxxx","direc cion":"xxxxxxxxxxxxxxxx"}]

pero luego no se como traspasarla a un input con jquery:

$("#codigo1").val(resp.codigo);

Como he comentado anteriormente, con el firebug puedo visualizar que "resp" contiene:

object {"codigo":"x","nombre":"xxxxxxxxxxxxxxxxxx","direc cion":"xxxxxxxxxxxxxxxx"}
pero luego "codigo..." me da como "undefined"...

¿como se hace referencia al valor de los elementos del objeto array "resp"?

Gracias.

** errata en el anterior:
no es por post es por get

$matriz['value'] = $row['codigo']; ===> $matriz['codigo'] = $row['codigo'];
quería decir codigo, no value...

... es que he probado tantas cosas que las mezclo...

Última edición por albeolo; 23/02/2011 a las 14:22
  #4 (permalink)  
Antiguo 23/02/2011, 15:00
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 20 años
Puntos: 145
Respuesta: Formato del array de respuesta de un .get jquery ajax php

albeolo

te dejo un pequeño ejemplo q funciona con json.

http://apps-dev.net/json.zip

revisalo quizas te sirva.

saludos.
__________________
http://chicho.ninja yiaaaa
  #5 (permalink)  
Antiguo 23/02/2011, 17:43
 
Fecha de Ingreso: diciembre-2010
Ubicación: granada
Mensajes: 31
Antigüedad: 14 años
Puntos: 0
Pregunta Respuesta: Formato del array de respuesta de un .get jquery ajax php

Nada Cherivera, o al menos yo no lo se implementar.

$.each(data, function(key, val){
$.each(val, function(key2, val2){
items.push('<li id="' + key2 + '">' + val2.swf_url + '</li>');

este ejemplo mete en una li cada uno de los elementos de la matriz, y yo lo que necesito es sacar el valor del elemento "codigo..." de la matriz...
Lo he probado de todas las formas que sé, y no me ha salido.

¿alguna otra posibilidad?
Gracias de nuevo.
  #6 (permalink)  
Antiguo 23/02/2011, 17:52
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 9 meses
Puntos: 77
Respuesta: Formato del array de respuesta de un .get jquery ajax php

Cuando yo hago cosas asi que devuelven JSON, primero parseo la respuesta y asi ya puedo acceder a los elementos con formato de array

var foo = JSON.parse(data);
alert(foo['bar']);
  #7 (permalink)  
Antiguo 24/02/2011, 03:51
 
Fecha de Ingreso: diciembre-2010
Ubicación: granada
Mensajes: 31
Antigüedad: 14 años
Puntos: 0
Pregunta Respuesta: Formato del array de respuesta de un .get jquery ajax php

Hola darkasecas,

He probado asi:

Código:
$.get('search.php', data, function(resp){
			var respVuelta = JSON.parse(resp);
			alert(respVuelta['codigo']);
y el firebug me dice:

Error Break: JSON.PARSE LINE ... del "var respVuelta = JSON.parse(resp);"

Gracias, alguna otra sugerencia?...
  #8 (permalink)  
Antiguo 24/02/2011, 06:21
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 11 meses
Puntos: 206
Respuesta: Formato del array de respuesta de un .get jquery ajax php

Código HTML:
$.get('search.php', data, function(resp){
        try
	{
		var msg = eval('(' + resp + ')');
	}
	catch(err)
	{
		var msg=false;
	}
	if (msg!=false)
	{
                alert(msg.codigo+" "+msg.nombre+" "+msg.direccion);
	}	
	else
	{
		alert("Error AJAX.");
	}
});
  #9 (permalink)  
Antiguo 24/02/2011, 06:44
 
Fecha de Ingreso: diciembre-2010
Ubicación: granada
Mensajes: 31
Antigüedad: 14 años
Puntos: 0
Pregunta Respuesta: Formato del array de respuesta de un .get jquery ajax php

Hola marlanga, antes de todo, muchas gracias.

He probado tu código, y me da el firebug la siguiente información:

eval --> undefined, y sale el mensaje de "error ajax"

¿algo me falta?... ¿tengo que cargar algún .js para utilizar esa función?

He leido por ahí que utilizar eval es peligroso (aunque para grabar antes utilizo el htmlspecialchar de php).

Verás, mirando y mirando por ahí, y probando y probando he encontrado algo que me puede servir (al menos me saca la información):

Código:
$.get('search.php', data, function(resp){
   $.each(resp, function(i, valor){
	$("#codigo1").val(valor.codigo);
	$("#razonsocial1").val(valor.razon);
	$("#direccion1").val(valor.direccion);
   })
}, 'json');
de esta forma (utilizando el .each, cosa que no haría falta, pues rescato de la bd un solo registro), parece que la función cambia el formato y la coloca en el segundo parámetro (valor en este caso) inteligible por jquery o javascript...

Sabes otra manera de sacar la información, sin utilizar el each?...

Gracias.

Etiquetas: ajax-php
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 03:19.