Foros del Web » Programando para Internet » Jquery »

CI consultas AJAX en json con jQuery

Estas en el tema de CI consultas AJAX en json con jQuery en el foro de Jquery en Foros del Web. Hola como estan? Alguien me podria dar unos ejemplos de como hacer consultas AJAX en codeigniter y que la respuesta sea en json? hay que ...
  #1 (permalink)  
Antiguo 16/07/2012, 08:03
 
Fecha de Ingreso: junio-2010
Mensajes: 153
Antigüedad: 14 años, 5 meses
Puntos: 4
CI consultas AJAX en json con jQuery

Hola como estan?

Alguien me podria dar unos ejemplos de como hacer consultas AJAX en codeigniter y que la respuesta sea en json? hay que configurar algo en CI?
Busque en internet algunos ejemplos pero, nose porque, no me funcionan.

Si es posible en jQuery por favor. Gracias.
  #2 (permalink)  
Antiguo 16/07/2012, 09:38
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: CI consultas AJAX en json con jQuery

para nada, recuerda que para CI es trasparente si la petición se envía por AJAX o no, para devolver un json sólo necesitas usar die(json_encode($data)), o dumpear el json a la salida, ni siquiera necesitas una vista.

depende de como recibas el json en el cliente, algunos FW como ExtJS esperan una estructura básica, pero eso lo adaptas al enviar el json, no se requiere ni CI
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 16/07/2012, 11:02
 
Fecha de Ingreso: junio-2010
Mensajes: 153
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: CI consultas AJAX en json con jQuery

Es que tengo dos proyectos y en uno me funciona pero en el otro no, estos son los source:

Este es el que funciona:
Código:
<script type="text/javascript">
$('#formApunte').submit(function(e)
{	
	e.preventDefault();		
	
	txt_form= 
	{
		titulo: $('#titulo').val(),
		texto: $('#formApunte #texto').val(),
		materia: $('#materia').val()	
	};
	
	$.ajax(
	{
		url: "<?php echo site_url('apunte/validarApunte'); ?>",
		type: 'POST',
		dataType: "json",
		data: txt_form,
		success: function(data)
		{	
			if( data.errores == "0" )
			{
				var div= $(data.apunte).hide();
				$("#visor").prepend(div);
				div.fadeIn("slow");
				$("#texto").val('');
			}
			else
			{
				$("#error-tit").empty().show("normal").append(data.tituloError);
				$("#error-txt").empty().show("normal").append(data.textoError);
				$("#error-mat").empty().show("normal").append(data.materiaError);
			}
		}
	});
});
</script>

Y este es el que no funciona:
Código:
<script type="text/javascript">
$(".caritaPickon").click(function(e)
{
	e.preventDefault();
	var carita= $(this);

	txt_form= 
	{
		id_post: $(this).find('input[type="hidden"]').val()
	};
	
	$.ajax(
	{
		url: "<?php echo site_url('ranking/pickup'); ?>",
		type: 'POST',
		dataType: "json",
		data: txt_form,
		success: function(data)
		{
			alert(data.toSource());
		}			
	});
});
</script>
Se que las respuestas por parte de PHP estan okey, porque las veo con el firebug. Pero es como que en el primer codigo la respuesta la toma como una json, pero en la segunda no.

PD: en los dos controladores tengo die(json_encode($data)); Por eso digo que PHP esta bien.
  #4 (permalink)  
Antiguo 16/07/2012, 13:28
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: CI consultas AJAX en json con jQuery

alert(data.toSource());

para eso, el JSON de origen debe de tener una función anónima declarada, revise la salida de dicho JSON con una consola tipo firebug
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 16/07/2012, 13:46
 
Fecha de Ingreso: junio-2010
Mensajes: 153
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: CI consultas AJAX en json con jQuery

No hace el alert(data.toSource()); y en la consola del firebug me figura esto:

Código:
{"error":"si","catVotos":"0"}
Que es la respuesta que quiero. Pero me aparece en al pestaña Respuesta, y me tendria que aparecer una pestaña "JSON" con esto datos para que funcione.
  #6 (permalink)  
Antiguo 16/07/2012, 13:50
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: CI consultas AJAX en json con jQuery

{"error":"si","catVotos":"0"}

ajá pero en ése JSON no existe data.toSource() ¿que es lo que quiere extraer, solo existe error y catVotos?
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #7 (permalink)  
Antiguo 16/07/2012, 13:53
 
Fecha de Ingreso: junio-2010
Mensajes: 153
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: CI consultas AJAX en json con jQuery

No, lo que puse ahi es lo que se ve por la consola del firebug, en la solapa "Respuesta".
Pero si hago alert(data.error) o alert(data.carVotos), no funciona, no pasa nada.
  #8 (permalink)  
Antiguo 16/07/2012, 13:55
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: CI consultas AJAX en json con jQuery

y si haces un alert(data) que te aparece, por lo que veo jQuery NO está parseando el JSON, puede que esté mal formado o tenga caracteres invisibles que impidan parsearlo
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #9 (permalink)  
Antiguo 16/07/2012, 14:00
 
Fecha de Ingreso: junio-2010
Mensajes: 153
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: CI consultas AJAX en json con jQuery

Aaaah siii!! parece que es un tema que esta poniendo caracteres invisibles, porque ahora probe hacer una consulta ajax comun (sin json), y que la respuesta sea "hola". Y el alert(data.toSource()); me muestra lo siguiente:

Código:
(new String("\uFEFFhola"))
\uFEFF esta de mas no? como puedo hacer para que no me ponga caracteres invisibles?

GRacias.
  #10 (permalink)  
Antiguo 16/07/2012, 14:06
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: CI consultas AJAX en json con jQuery

eso tendrás que resolverlo en el servidor, por eso se usa die(), para terminar por completo y evitar que CI devuelva lo que acostumbra devolver.

\uFEFF es sólo la representación de un caracter en Unicode, no creo que esté de más
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #11 (permalink)  
Antiguo 16/07/2012, 14:09
 
Fecha de Ingreso: junio-2010
Mensajes: 153
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: CI consultas AJAX en json con jQuery

:S pero con die() me sigue pasando. Que tengo que tocar del servidor? estoy en un localhost
  #12 (permalink)  
Antiguo 16/07/2012, 14:34
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: CI consultas AJAX en json con jQuery

intenta establecer el content-type a json con CI, no se me ocurre otra cosa, es jQuery el que no quiere parsear la data
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #13 (permalink)  
Antiguo 16/07/2012, 17:13
 
Fecha de Ingreso: junio-2010
Mensajes: 153
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: CI consultas AJAX en json con jQuery

Que garron!!! bueno voy a ver que puedo hacer. Lo peor es que tengo otro source que lo hice tal cual a este y me funciona sin problemas :S.

Muchas gracias igualmente!
  #14 (permalink)  
Antiguo 17/07/2012, 10:34
 
Fecha de Ingreso: junio-2010
Mensajes: 153
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: CI consultas AJAX en json con jQuery

Ya lo pude solucionar. En el meta puse el charset iso-8859-1 y guarde todos los documentos con esta misma codificacion. Ya que como dijo maycolalvarez, el jQuery no mostraba resultados porque venia un caracter invisible (la marca del UTF-8).

Gracias.
  #15 (permalink)  
Antiguo 17/07/2012, 15:00
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: CI consultas AJAX en json con jQuery

imagínate!!! , el bendito BOM, aunque lo ideal es guardar en UTF8 Sin BOM, pero bueno con tal del eliminar el BOM se soluciona, ya lo tendré en cuenta para las próximas preguntas relacionadas con AJAX, saludos y gracias, no se me pasó por la cabeza

+karma para tí
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: ajax, codeigniter, json
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 14:52.