JQuery - problema usando echo y json con jquery para crear tabla dinamica

   
Vista:

problema usando echo y json con jquery para crear tabla dinamica

Publicado por centaurux (39 intervenciones) el 04/08/2015 18:01:12
Hola Gurus,

He estado batallando estos dias con lo siguiente.

tengo un php que me genera una tabla dinamica la cual muestro en pantalla.
para llevar a cabo esto uso jquery con json para poder cargar la tabla.
sigue el codigo de la generacion de la tabla

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
while($row = mysqli_fetch_array($consulta, MYSQLI_ASSOC)) {
	$datos = $row['cp_cia'].",".$row['cp_dsc'].",".$row['cp_sta'];
	//
	$salida .= ' <tr> ';
	$salida .= ' <td class='."centra".'>'.$row['cp_cia'].'</td>';
	$salida .= ' <td class='."izqi".'>'.$row['cp_dsc'].'</td>';
	$salida .= ' <td class='."centra".'>'.$row['cp_sta'].'</td>';
	$salida .= ' <td>'.'<a href="#" datos="$datos" tarea='."mod".'> <img src="../images/edit.jpg" title='."Modificar".'></a>';
	if ($row['cp_sta'] == 'A') {
		$x = '<a href='."#".' datos='.$datos.' tarea='."bor".'> <img src='.'../images/borrar.jpg title='.'Activo'.'></a>';
	}
	else {
		$x = '<a href='."#".' datos='.$datos.' tarea='."act".'> <img src='.'../images/agregar.jpg title='."Activo".'></a>';
	}
	$salida .= ' '.$x;
	$salida .= ' </td> <tr/>  ';

ahora, si al final uso un echo $salida en lugar de retornar un echo de json_encode...
echo $salida;
//echo json_encode($salidaJson);

la pantalla se muestra muy bien excelente sin problemas.

PERO....
si uso echo json_encode($salidaJson); vienen los problemas esta es la salida usando alert() en jquery, que capturo en pantalla del resultado de json.

1
2
3
4
5
6
<tr>  <td class=centra>001<\/td> <td class=izqi>Cia 001<\/td> <td class=centra>A<\/td>
<td> <a href=\"#\" datos=\"$datos\" tarea=mod> <img src=\"..\/images\/edit.jpg\" title=Modificar><\/a>
<a href=# datos=001,Cia 001,A tarea=bor> <img src=..\/images\/borrar.jpg title=Activo><\/a> <\/td> <tr\/>
<tr>  <td class=centra>002<\/td> <td class=izqi>cia 002<\/td> <td class=centra>A<\/td>
<td><a href=\"#\" datos=\"$datos\" tarea=mod> <img src=\"..\/images\/edit.jpg\" title=Modificar><\/a>
<a href=# datos=002,cia 002,A tarea=bor> <img src=..\/images\/borrar.jpg title=Activo><\/a> <\/td> <tr\/>

esto es lo q muestra me coloca caracteres tales como <\/td> en los cierres </td> <\/a> en los cierres de </a>
en el caso de los href me muestra src=..\/images\/borrar.jpg colocando "\/" en cada /

este codigo lo habia usado hace mas de una año, pero habia dejado de programar, por lo cual no se si es algo en la configuracion de mi servidor appserv 5.2.6 que me esta faltando o no se si la version de appserv esta obsolota o
tambien saben por que pasa esto???

con el echo sin el jason jala, pero quiero saber si estoy haciendo algo incorrecto por que la idea es el uso del json como mejores practicas.

anexo 2 archivos :
salida_con_echo.jpg (sin usar json)
salida_con_json.jpg

con el fin de que vean graficamente lo que les comento.

Saludos
espero sus respuestas e iluminacion.
Saludos
pura vida

centaurux.
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

problema usando echo y json con jquery para crear tabla dinamica

Publicado por centaurux (39 intervenciones) el 04/08/2015 20:18:31
En realidad es un gran dolor de cabeza, desconozco por que el json_encode le mete caracteres que no no existen o es la forma en que lo interpreta... bueno de momento no tengo respuesta de algun guru que me oriente pero ...
buscando encontre lo siguente

$json_encoded_string = json_encode($salidaJson);
$search = array("\\n", "\\r", "\\u", "\\t", "\\f", "\\b", "\/", "\"");
$replace = array("\n", "\r", "\u", "\t", "\f", "\b", "/", '"');

$encoded_string = str_replace( $search, $replace, $json_encoded_string);

echo $encoded_string;


con este simple replace de los caracteres de mas se setea la variable encode. ya no aparecen los caracteres de mas.
espero q esto ayude a otras personas q tienen el mismoproblema.

Saludos, pero .... si algun guru sabe del por q este problemaa compartamelo por favor. es mi appserv version? o es un bug de json_encode??

saludos pueblo
pura vida

centatrux.
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 Vainas

problema usando echo y json con jquery para crear tabla dinamica

Publicado por Vainas (96 intervenciones) el 06/08/2015 21:18:30
Buenas:

Creo que usando esto puedes evitar que la funcion escape ciertos caracteres(se llama escapar un caracter cuando se le agrega la barra o slash para que el caracter no sea confundido con otro elemento del lenguaje o el programa que lo procese).

1
echo json_encode($salidaJson, JSON_UNESCAPED_SLASHES);

Desconozco si esto ha podido afectar o no a versiones anteriores de php pero podria ser que sea una nueva implementacion.

De todas formas me da un poco la impresion de que no estas aplicando muy bien lo que es json a lo que es un html/xml normal.

Deberias revisar que es json y que es xml. son formas de enviar datos solamente, digamos que puedes separarlo un poco de la presentacion en este caso.

Si todavia estas interesado podria ponerte aqui un ejemplo.

Saludos.
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

problema usando echo y json con jquery para crear tabla dinamica

Publicado por centaurux (39 intervenciones) el 07/08/2015 05:26:16
Hola Vianas que tal!!

Si me gustaria y le agradeceria mucho me mande algun ejemplo por favor.

Muchas gracias

Saludos
centaurux
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