02/11/2015, 10:58
|
| | Fecha de Ingreso: octubre-2009
Mensajes: 22
Antigüedad: 15 años, 4 meses Puntos: 0 | |
Respuesta: Problema con json_encode Hola, te pongo lo que me saca antes y despues del encode:
Haciendo var_dump($article) saca esto:
Código:
array(5) {
["id"]=>
string(2) "80"
["title"]=>
string(51) "Como pasar variable GET en la URL con jQuery Mobile"
["fecha"]=>
string(19) "10-04-2014 16:51:44"
["texto"]=>
string(2222) "<p><img style="float:left;margin-right:15px;width:250px;" src="./recursos/logo-jquery-mobile.png" alt="jQuery mobile"/>Son muchas las ventajas de utilizar <span class="texto-amarillo">jQuery Mobile</span> pero, a veces, también nos encontramos con problemas que habitualmente no encontraríamos y el utilizar jQuery Mobile lo complica un poco.</p>
<p>En este caso, si queremos <span class="texto-amarillo">pasar parámetros</span> a través de la <span class="texto-amarillo">URL</span> igual que haríamos en HTML, por ejemplo, <span class="texto-verde">www.midominio.com/verNoticia?id=12</span> , nuestra primera idea para hacer esto sería poner un enlace parecido a esto:</p>
<pre class="brush:xml">
<a href="#verNoticia?12" data-role="button">Ver noticia 12</a>
</pre>
<p>Sin embargo, esa variable es obviada por <span class="texto-amarillo">jQuery Mobile</span> a la hora de cambiar de página y no funciona. La mejor forma de conseguir esa funcionalidad es utilizar el <span class="texto-amarillo">almacenamiento en sesión</span> mediante <span class="texto-verde">sessionStorage()</span>.</p>
<p>Para hacerlo deberíamos hacer algo como lo siquiente:</p>
<pre class="brush:xml">
<a href="#verNoticia" onclick="sessionStorage.idVerNoticia='12';" data-role="button"> Ver noticia 12 </a>
</pre>
<p>Una vez que clicamos sobre el enlace para acceder al detalle de la noticia debemos tratar de <span class="texto-amarillo">recuperar ese parámetro</span> en la pagina de detalle. Para hacer debemos hacer lo siguiente:</p>
<pre class="brush:js">
<script type="text/javascript">
$("#verNoticia").on("pageshow", function(){
var idNoticia=sessionStorage.idVerNoticia;
/** Una vez obtenido el ID de noticia hacemos lo necesario para cargar los datos de la noticia **/
});
</script>
</pre>
<p>Como véis, justo antes de mostrar el contenido de la página recuperamos el ID de la noticia y hacemos las operaciones oportunas para cargar los datos de esa noticia.</p>
<p>Esta es la forma más sencilla de pasar y recuperar variables GET a través de URL.</p>"
["comentarios"]=>
array(4) {
[0]=>
array(4) {
["id"]=>
string(5) "23925"
["nombre"]=>
string(30) "Sergio González Barrios"
["fecha"]=>
string(19) "10-04-2014 16:51:44"
["texto"]=>
string(154) "sessionStorage te permite guardar tantas variables como desees. POr ejemplo:
onclick="sessionStorage.idVerNoticia='12';sessionStorage.nombre='sergio';""
}
[1]=>
array(4) {
["id"]=>
string(5) "23906"
["nombre"]=>
string(7) "Andrezs"
["fecha"]=>
string(19) "10-04-2014 16:51:44"
["texto"]=>
string(21) "SI son varios Datos??"
}
[2]=>
array(4) {
["id"]=>
string(5) "23657"
["nombre"]=>
string(30) "Sergio González Barrios"
["fecha"]=>
string(19) "10-04-2014 16:51:44"
["texto"]=>
string(336) "Creo recordar que web storage solo se puede usar para navegadores web como su definición indica. Si quieres usar storage para app móviles deberías utilizar el sessionStorage o locaStorage que funcionan muy bien.
Yo personalmente desaconsejaría el web storage ya que muchos navegadores no lo soportan.
"
}
[3]=>
array(4) {
["id"]=>
string(5) "23648"
["nombre"]=>
string(6) "andres"
["fecha"]=>
string(19) "10-04-2014 16:51:44"
["texto"]=>
string(86) "Hola e Web Storage funciona con los navegadores y etc, y con mobiles.???
Gracias!! "
}
}
}
Y haciendo var_dump($json);
Código:
string(3487) "{"id":"80","title":"Como pasar variable GET en la URL con jQuery Mobile","fecha":"10-04-2014 16:51:44","texto":"<p><img style=\"float:left;margin-right:15px;width:250px;\" src=\".\/recursos\/logo-jquery-mobile.png\" alt=\"jQuery mobile\"\/>Son muchas las ventajas de utilizar <span class=\"texto-amarillo\">jQuery Mobile<\/span> pero, a veces, también nos encontramos con problemas que habitualmente no encontraríamos y el utilizar jQuery Mobile lo complica un poco.<\/p>\r\n\r\n<p>En este caso, si queremos <span class=\"texto-amarillo\">pasar parámetros<\/span> a través de la <span class=\"texto-amarillo\">URL<\/span> igual que haríamos en HTML, por ejemplo, <span class=\"texto-verde\">www.midominio.com\/verNoticia?id=12<\/span> , nuestra primera idea para hacer esto sería poner un enlace parecido a esto:<\/p>\r\n\r\n<pre class=\"brush:xml\">\r\n\r\n\t<a href=\"#verNoticia?12\" data-role=\"button\">Ver noticia 12<\/a>\r\n\t\r\n<\/pre>\r\n\r\n<p>Sin embargo, esa variable es obviada por <span class=\"texto-amarillo\">jQuery Mobile<\/span> a la hora de cambiar de página y no funciona. La mejor forma de conseguir esa funcionalidad es utilizar el <span class=\"texto-amarillo\">almacenamiento en sesión<\/span> mediante <span class=\"texto-verde\">sessionStorage()<\/span>.<\/p>\r\n\r\n<p>Para hacerlo deberíamos hacer algo como lo siquiente:<\/p>\r\n\r\n<pre class=\"brush:xml\">\r\n\t<a href=\"#verNoticia\" onclick=\"sessionStorage.idVerNoticia='12';\" data-role=\"button\"> Ver noticia 12\t<\/a>\r\n<\/pre>\r\n\r\n<p>Una vez que clicamos sobre el enlace para acceder al detalle de la noticia debemos tratar de <span class=\"texto-amarillo\">recuperar ese parámetro<\/span> en la pagina de detalle. Para hacer debemos hacer lo siguiente:<\/p>\r\n\r\n<pre class=\"brush:js\">\r\n\r\n\t<script type=\"text\/javascript\">\r\n\t\t\r\n\t\t$(\"#verNoticia\").on(\"pageshow\", function(){\t\r\n\t\t\r\n\t\t\tvar idNoticia=sessionStorage.idVerNoticia;\r\n\t\t\t\r\n\t\t\t\/** Una vez obtenido el ID de noticia hacemos lo necesario para cargar los datos de la noticia **\/\r\n\t\t\r\n\t\t});\r\n\t\r\n\t<\/script>\t\r\n\t\r\n<\/pre>\r\n\r\n<p>Como véis, justo antes de mostrar el contenido de la página recuperamos el ID de la noticia y hacemos las operaciones oportunas para cargar los datos de esa noticia.<\/p>\r\n\r\n<p>Esta es la forma más sencilla de pasar y recuperar variables GET a través de URL.<\/p>","comentarios":[{"id":"23925","nombre":"Sergio González Barrios","fecha":"10-04-2014 16:51:44","texto":"sessionStorage te permite guardar tantas variables como desees. POr ejemplo:\r\n\r\nonclick=\"sessionStorage.idVerNoticia='12';sessionStorage.nombre='sergio';\""},{"id":"23906","nombre":"Andrezs","fecha":"10-04-2014 16:51:44","texto":"SI son varios Datos??"},{"id":"23657","nombre":"Sergio González Barrios","fecha":"10-04-2014 16:51:44","texto":"Creo recordar que web storage solo se puede usar para navegadores web como su definición indica. Si quieres usar storage para app móviles deberías utilizar el sessionStorage o locaStorage que funcionan muy bien. \r\n\r\nYo personalmente desaconsejaría el web storage ya que muchos navegadores no lo soportan.\r\n\r\n"},{"id":"23648","nombre":"andres","fecha":"10-04-2014 16:51:44","texto":"Hola e Web Storage funciona con los navegadores y etc, y con mobiles.???\r\nGracias!! "}]}"
Como ves, antes se ve correctamente el código HTML del campo 'texto' y en el DESPUES muchos de los caracteres han sido transformados. |