elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Verificar Existencia de Array Enviado desde PHP a JS en forma de JSON
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Verificar Existencia de Array Enviado desde PHP a JS en forma de JSON  (Leído 2,676 veces)
spysecurityca

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Verificar Existencia de Array Enviado desde PHP a JS en forma de JSON
« en: 22 Agosto 2014, 05:42 am »

Si pues, tengo un Ajax en el JS que me trae los echo desde PHP

Uno de esos echo es un Array convertido a JSON en PHP, los otros son echo de mensajes.

La pregunta es ¿Como hago para aislar del resto de echo el Array que envío desde php a JS ?

Necesito analizar el Array en JS pero la variable datos=eval("(" + conex2.responseText + ")"); me trae todo lo que sea echo (Cosa que quiero) y me interrumpe el analisis del Array que envío desde PHP.


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Verificar Existencia de Array Enviado desde PHP a JS en forma de JSON
« Respuesta #1 en: 22 Agosto 2014, 05:51 am »

por que lo mandas mezclado? :s eso no se hace! D:


de todas formas puedes usar un "marcador" en el codigo, tipo

Código:
mensaje linea 1
mansaje linea 2
//*inicioJSON*//
{a:1,b:2}
//*finJSON*//
mensaje linea 3
etc...

traerte el mensaje completo, meterlo en una variable, usas "indexOf" para conseguir la posición de el marcador de inicio y de fin, usas "substr" para sacar la sección de JSON, y luego la evalúas XD (es un montón de procesos necesarios, pero mínimos para lo que quieres)


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
eLank0
eLhAcKeR r00Lz


Desconectado Desconectado

Mensajes: 1.062



Ver Perfil WWW
Re: Verificar Existencia de Array Enviado desde PHP a JS en forma de JSON
« Respuesta #2 en: 22 Agosto 2014, 11:53 am »

Hola!

¿No sería más sencillo y a la vez eficiente enviar todos los datos en formato JSON para ahorrar dolores de cabeza?  :o

Salu2!
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Verificar Existencia de Array Enviado desde PHP a JS en forma de JSON
« Respuesta #3 en: 22 Agosto 2014, 17:53 pm »

Pues lo normal sería que el texto de salida fuera unicamente de tipo json y no mezclar texto plano con json ya que para procesar texto json en javascript deberias utilizar el envio de cabeceras json o si no no te va a funcionar bien en todos los navegadores.

Código
  1. <?php
  2.  
  3. $datos = array();
  4.  
  5. if($estado1){
  6. $datos[] = array(
  7. 'a' => 1,
  8. 'b' => 2
  9. );
  10. }
  11.  
  12. if($estado2){
  13. $datos[] = array(
  14. 'a' => 1,
  15. 'b' => 2
  16. );
  17. }
  18.  
  19. header('Content-Type: application/json; charset=utf-8');
  20. 'estado' => 1,
  21. 'mensajes' => array(
  22. 'primero' => 'Este es un mensaje',
  23. 'segundo' => 'Este es otro mensaje'
  24. ),
  25. 'datos' => $datos
  26. ));

Luego desde jquery utilizas:

Código
  1. $.ajax({
  2. cache : false,
  3. url : document.location,
  4. dataType : 'json',
  5.  
  6. /* Acá indicas si la petición debe ser GET o POST, de preferencia prefiero POST
  7. para un mayor control desde el php y para el envío de datos grandes. */
  8. type : 'POST',
  9.  
  10. /* Estos son los datos de tu petición POST */
  11. data : {
  12. accion : 'obtener',
  13. foo : 'var'
  14. }
  15.  
  16. success : function (data) {
  17. if(data.estado == 1){
  18. // Procesa data.datos, data.mensajes[n], etc
  19. }else{
  20. // En este punto el json venia corrupto
  21. }
  22. },
  23. error : function (request, status, error) {
  24. /* Una carga abortada no debería desplegar un mensaje de error */
  25. if(error == 'abort')
  26. return;
  27.  
  28. alert('Hubo un error al obtener los datos, inténtelo nuevamente.');
  29.  
  30. var contextoAjax = this;
  31.  
  32. /* Esto es por si quieres reintentar cada ves que ocurre un error */
  33. setTimeout(function(){
  34. $.ajax(contextoAjax);
  35. }, 4000);
  36. /* El timeout es para que haga el reintento cada 4 segundos,
  37. si el usuario no tiene internet va a enviar la petición como 500 veces por segundo
  38. y provocarás que el navegador agote los recursos de memoria y CPU del PC */
  39. }
  40. });

jSon existe justamente para que no tengas que trabajar con textos planos y no tengas este tipo de problemas, por eso siempre tu comunicación entre php y javascript debería ser vía jSon (de preferencia).

Fijate que en la petición post le puse type json, es porque un servidor WEB no solo soporta datos serializados via post data sino también datos en json y eso es estandard.


de todas formas puedes usar un "marcador" en el codigo, tipo

Código:
mensaje linea 1
mansaje linea 2
//*inicioJSON*//
{a:1,b:2}
//*finJSON*//
mensaje linea 3
etc...

Eso jamas se hace xD, por eso existen los protocolos y formatos, están diseñados para llevar todo tipo de contenido sin dar problemas, por ejemplo si hago lo que dices entonces jamás voy a poder poner "//*finJSON*//" dentro de un campo de texto para guardar y ser enviado via json o poner un texto de un blog con eo ya que va a terminar cortando tu código a la mitad y se producirá una inyección de datos. Para eso existen las secuencias de escape en todos los lenguajes de programación entre muchas otras cosas pensadas para su buen uso, como lo hace json, javascript, batch, bash, php, perl, python, etc etc, es como si yo quisiera poner un texto con comillas simples y dobles dentrod e una cadena de caracteres de php, necesito usar la secuencia de escape de backslash, en javascript debo usar carácteres unicode, en json también usa backslash al igual que sql, etc.

Saludos.
« Última modificación: 22 Agosto 2014, 18:03 pm por WHK » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Verificar Existencia de Array Enviado desde PHP a JS en forma de JSON
« Respuesta #4 en: 22 Agosto 2014, 18:52 pm »

Eso jamas se hace xD, por eso existen los protocolos y formatos, están diseñados para llevar todo tipo de contenido sin dar problemas, por ejemplo si hago lo que dices entonces jamás voy a poder poner "//*finJSON*//" dentro de un campo de texto para guardar y ser enviado via json o poner un texto de un blog con eo ya que va a terminar cortando tu código a la mitad y se producirá una inyección de datos. Para eso existen las secuencias de escape en todos los lenguajes de programación entre muchas otras cosas pensadas para su buen uso, como lo hace json, javascript, batch, bash, php, perl, python, etc etc, es como si yo quisiera poner un texto con comillas simples y dobles dentrod e una cadena de caracteres de php, necesito usar la secuencia de escape de backslash, en javascript debo usar carácteres unicode, en json también usa backslash al igual que sql, etc.

hey! XD quien hace mal es él al no filtrar su información XD yo solo estoy dando una solución pirata a un problema del mismo tipo! XD
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Verificar si se lee un correo enviado
Desarrollo Web
diego_lp 6 9,764 Último mensaje 25 Abril 2012, 21:41 pm
por Kase
verificar existencia de un archivo dentro de un ftp
Programación Visual Basic
asdexiva 2 3,877 Último mensaje 23 Octubre 2013, 16:03 pm
por asdexiva
[Resuelto] [Newbie] No puedo acceder a objeto JSON enviado por AJAX
PHP
iGust4v0x 8 4,287 Último mensaje 14 Enero 2015, 21:46 pm
por iGust4v0x
Ayuda para construir un json desde array
PHP
d91 0 2,241 Último mensaje 6 Noviembre 2017, 04:54 am
por d91
Verificar la Existencia de un archivo en 4gl
Programación General
ckrings 1 2,180 Último mensaje 26 Octubre 2018, 23:33 pm
por Shell Root
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines