AJAX - Fallo json

   
Vista:

Fallo json

Publicado por Javier (16 intervenciones) el 24/01/2013 16:37:06
Hola, buenas tardes.

Estoy intentando obtener un dato mediante una consulta con ajax a mysql.
Efectuo la llamada del siguiente modo(cuando cambia el valor de un select),:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$(document).ready(function(){
	$("#alquilasid").change(function () {
      	   if (this.value=='S'){
		 var json;
	         var strUrl = "buscapinza.php";
	         vcodigo= this.value ;
	        $.ajax({
	            type: "POST",
	            url:strUrl,
		    data: { codigo: vcodigo},
       		    success:function (datosoc){
		      dato = json.resultasoc;
		     //dator = dato.split(':');
		    longsoc = dato.length;
		    alert (dato[0]);
		    $( "input[ name = nsportid ]" ).val( dato[0] );
		  },
		error:function(){
			alert ("Fallo");
			},
	       dataType: "json"
	    });
	 };
 
    });
	...

Al hacer la llamada al php veo que funciona correctamente y observo que le paso el valor de la variable correctamente y la query funciona ya que en el debug si veo los datos obtenidos.
El problema viene cuando retorno:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
	include('abreadol.php');
	$pinza = $_POST[ "codigo" ];
	echo ("La pinza: ".$pinza."  ");
	$busca = "SELECT npinza FROM $tabla_db6 where alquilada ='N' Limit 1";
	$buscar = mysql_query($busca) or die ("Error no encontrado ".mysql_error());
	$registro = mysql_fetch_array($buscar);
	echo ("Resultado de la busqueda:" .$registro[0]);
	include('cierraadol.php');
	echo json_encode(array("resultasoc"=>$registro));
 
?>


No pasa por el success y si por error:

Los datos que obtengo en la query son los siguientes:

La pinza: S {"resultasoc":{"0":"000001","npinza":"000001"}}

¿Qué le podria estar pasando?.

Un saludo,
Javier.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Fallo json

Publicado por Javier (16 intervenciones) el 24/01/2013 19:56:08
Voy a ampliar la informacion por si sirve de algo:

He añadido el control de errores:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$("#alquilasid").change(function () {
      	   if (this.value=='S'){
		 var json;
	         var strUrl = "buscapinza.php";
	         valor = this.value ;
	        $.ajax({
	            type: "POST",
	            url:strUrl,
		    data: { codigo: valor},
       		    success:function (datosoc){
		    alquila(datosoc);
		  },
		error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert("Status: " + textStatus); alert("Error: " + errorThrown); },
	       dataType: "json"
	    });
 
	 };
 
    });


Me retorna el siguiente mensaje:

Status: parsererror

y el segundo mensaje:

Error: SyntaxError: Unexpected token L

Por lo que me da la sensacion es que el problema esta en el php
Lo he modificado asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
	include('abreadol.php');
	$pinza = $_POST[ "codigo" ];
	echo ("La pinza: ".$pinza."  ");
	$busca = "SELECT * FROM $tabla_db6 where alquilada ='N';";
	$buscar = mysql_query($busca) or die (mysql_error());
	$registro = mysql_fetch_array($buscar);
	$retorno = "";
	$retorno = $registro['npinza'].";".$registro['alquilada'].";".$registro['fechaa'];
	echo ("Resultado de la busqueda:".$retorno);
	include('cierraadol.php');
	echo json_encode(array("resultasoc"=>$retorno));
 
?>

El "fetch" funciona y devuelve datos por lo que la busqueda funciona.
Pero sigue dando esos errores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Fallo json

Publicado por xve (167 intervenciones) el 24/01/2013 20:52:08
Hola Javier, quita el
echo ("Resultado de la busqueda:".$retorno);

del archivo php que es llamado desde ajax... únicamente tiene que devolver el json.. si devuelve cualquier otra cosa, da error.

Revisa también que los includes no hagan ningún echo "...."

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Fallo json

Publicado por Javier (16 intervenciones) el 24/01/2013 21:14:31
Si, lo he descubierto por casualidad, pero no entiendo la razon.
Disculpa que no lo avisara en el foro pero no me ha dado tiempo.
Habia puesto varios echo para hacer un seguimiento de las variables y sus contenidos.
Quité los echo y funcionó.
¿Como hago entonces para ver las variables en el debug?.


Muchas gracias, como siempre, de todas formas.

Un saludo,
Javier.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Fallo json

Publicado por xve (167 intervenciones) el 24/01/2013 22:09:51
Hola Javier, yo las reviso mediante el navegador chorme... con la tecla F12 veo los parámetros que se envían y reciben.... supongo que los echo's los mirar por ahí, no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Fallo json

Publicado por Javier (16 intervenciones) el 25/01/2013 07:42:53
Buenos dias.
Si, asi es. Pero no sé como ver variables de php si el echo.


Un saludo,
Javier.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Fallo json

Publicado por xve (167 intervenciones) el 25/01/2013 10:16:05
Ah, ok... yo cuando quiero ver algún valor del php, lo meto dentro del array del json... por ejemplo, si quiero ver el contenido de la variable $buscar...
1
echo json_encode(array("resultasoc"=>$retorno, "buscar"=>$buscar));

De esta manera todo funciona correctamente, y yo puedo ver la info.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Fallo json

Publicado por Javier (16 intervenciones) el 25/01/2013 11:05:26
Tomo nota y hago la prueba.

Muchas gracias.

Un saludo,
Javier.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar