PHP - resultado JSON

   
Vista:

resultado JSON

Publicado por ukipuki (2 intervenciones) el 14/11/2014 18:27:57
Hola que tal
He creado una clase que leyendo archivos xml genera y devuelve un array asociativo. Este array lo tranformo en un string con formato json con la función 'json_encode' y lo envia al cliente.
Con jQuery y $ajax realizo una peticion al servidor al fichero 'fichero.php' para que envíe una estructura con formato json.
Si la clase está escrita en el 'fichero.php' la petición se realiza sin ningún problema. Pero si la clase lo escribo en un fichero aparte (por ejemplo 'objeto.php') y en el 'fichero.php' añado "include('objeto.php')" o "require('objeto.php')" el servidor envia el resultado y el navegador parece ser que reconoce el formato json del resultado enviado por el servidor (como se puede ver en el debugger del firefox). El problema es que la función 'success' de la petición $ajax no se ejecuta en este segundo caso.
Puede algien orientarme? (he intentado buscar en este foro pero la busqueda no me da resultado)
Un saludo
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
Imágen de perfil de xve

resultado JSON

Publicado por xve (5513 intervenciones) el 14/11/2014 21:15:13
Hola Ukipuki, la verdad es que no te entiendo muy bien, pero si tu coges parte del código PHP de una pagina y lo pones en un archivo externo y lo incluyes con un include(), no deberías de tener mayor problema.

Nos puedes mostrar el contenido del archivo objeto.php?
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

resultado JSON

Publicado por ukipuki (2 intervenciones) el 18/11/2014 16:05:22
Hola. gracias por la respuesta.
El contenido de la clase 'objeto.php' es el siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class className{
	var $ftx;
	function pZer(){$this->ftx=fopen("pitacora.txt","w+");}
	public function eman($param){
		$dok=new DOMDocument;
		$dok->preserveWhiteSpace = false;
		$dok->load("$param.xml");
		$izenak=$dok->getElementsByTagName('tagNeim');
		if($izenak->length>0){
			$zer=array();
			foreach($izenak as $iz){
				$id=$iz->getAttribute('id');
				$val=$this->emanIzena($iz);
				fwrite($this->ftx,"\r\n$id : $val");
				$zer[$id]=$val;
			}
			$multzo=array($param=>$zer);
			$emaitza=array($param=>$multzo);
			return $emaitza;
		}
		return null;
	}
	function emanIzena($p){foreach($p->childNodes as $i){if(strcmp($i->nodeName,'Nombre')==0){return $i->nodeValue;}}}
}

la información que facilita la petición ajax es la siguiente
Estado de la peticion: parsererror
Error: SyntaxError: JSON.parse: unexpected character

Como se puede ver hay algún error en la respuesta. Pero lo que me estraña es que el código del fichero 'objeto.php' es el mismo que incluyo en el fichero 'fichero.php', y en ambos casos el navegador reconoce la estructura JSON de la respuesta.

Mirando 'por ahí' he visto que si la estructura no está bien construida la petición ajax da error.
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