Ver Mensaje Individual
  #7 (permalink)  
Antiguo 06/03/2010, 12:38
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: alternativa a eval() para convertir a texto

Cita:
Estoy buscando un type of para javascript. Quiero comprobar que es lo que devuelve PHP: numero o cadena.
aqui me confundes, ¿o quieres hacerlo en php o en javascript? en javascript tienes el operador typeof. en php tienes la funcion gettype y no se si existe alguno mas.

Cita:
(desde PHP lo imprimo con comillas, y debería ser cadena, pero al recibirlo... ya entro en duda.)
recuerda que responseText siempre es de tipo string independientemente como devuelvas el contenido en php. si lo devuelves con comillas, en ajax obtienes un string con comillas. si evaluas ese contenido con eval, javascript te devuelve un string porque esta evaluando un string que tiene comillas. si no tuviera comillas te devuelve un numero. para que lo puedas entender...

si en php devuelves con comillas... ejemplo "1"
Código:
responseText == "1";
// devuelve false porque responseText es un string con comillas
// "1" es un string literial de javascript

eval(responseText ) == "1";
// devuelve true porque estas evaluando el string de responseText
// por tanto, eval lee "1" del responseText y al evaluarlo devuelve un string "1" 
si en php devuelves sin comillas... ejemplo 1
Código:
responseText == "1";
// devuelve true, de nuevo responseText es un string y se esta comparando con un string literal de javascript

eval(responseText) == "1";
// devuelve true.
// en este caso particular eval lee 1 y lo converte a numero, entonces estas comparando un numero con un string literal
// pero automaticamente javascript convierte el numero a string porque esta comparando dos tipos de valores diferentes
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 06/03/2010 a las 12:44