2010-07-13 25 views
11

Estoy teniendo un momento muy difícil tratando de hacer algo muy simple. Aquí está el código:jQuery 'If' declaración cadena de comparación no funciona

 if(data == 'success') { 

      alert('foo'); 

     } else { 

      alert(data); 

     } 

Lo he simplificado, pero eso es todo lo que se necesita para entender lo que está pasando. la variable 'datos' es el resultado de una llamada AJAX, si eso hace alguna diferencia. El problema es que siempre va a la declaración 'else' y alerta de 'éxito', lo que no debería ocurrir si va al 'else'. ¿Alguna idea de lo que está pasando aquí?

EDIT: Aquí está el código completo de AJAX en jQuery:

$.post("/manage_sites.php", {before:before, edit:after}, function(data){ 

     if(data == success) { 

      alert('blah'); 

     } else { 
      alert(data); 
     } 
    }); 

Y luego, en la respuesta de PHP:?

...code.... 
$update = mysql_query("UPDATE users SET feeds = '$afterFeed' WHERE username = '$name'") or  die("Query Failed"); 

if($update) { 

    echo 'success'; //this is the 'string' that is being given to 'data' 
} 
+2

'alerta (tipo de datos);' Esto te dará una idea si estás comparando manzanas con naranjas, y por lo tanto siempre entrando en el otro. –

+0

Me dio 'cadena'. – williamg

+1

puede pegar la respuesta completa de Ajax, ¿es JSON? – redsquare

Respuesta

28

Usted puede fijar en el lado del cliente usando $.trim() así:

if($.trim(data) == 'success') { 

O bien, un mejor enfoque sería la eliminación de la nueva línea que viene del lado del servidor, probablemente, una línea nueva errónea en su PHP en alguna parte, verifique antes o después del bloque <? ?>, esto es más a menudo donde surgen.

O, simplemente, salida después de la salida de su contenido, así:

if($update) { 
    echo 'success'; 
    exit(); 
} 
+0

Estoy leyendo la propiedad CSS de 'contenido' de un elemento e incluso el recorte no ayuda a que la comparación pase. –

0

Puede eliminar el arrastre> en su archivo, si es el última línea en el archivo. Quiero responder a los comentarios sobre el problema original, pero no veo cómo.

+1

. Necesita 50 rep para publicar un comentario sobre una pregunta que no hizo. ¡Continua publicando! http://stackoverflow.com/faq – jasongetsdown

0

validación del lado del cliente que trabaja muy bien.

$.trim() fine. 

Gracias Nick. Me llevó mucho tiempo entender por qué no funciona ...

Cuestiones relacionadas