2010-07-13 35 views
11

Tôi đang gặp khó khăn khi cố gắng làm điều gì đó rất đơn giản. Đây là mã:So sánh chuỗi câu lệnh jQuery 'If' không hoạt động

 if(data == 'success') { 

      alert('foo'); 

     } else { 

      alert(data); 

     } 

Tôi đã đơn giản hóa nó, nhưng đó là tất cả những gì cần thiết để hiểu điều gì đang xảy ra. biến 'dữ liệu' là kết quả của cuộc gọi AJAX, nếu điều đó tạo ra bất kỳ sự khác biệt nào. Vấn đề là nó luôn luôn đi đến tuyên bố 'khác' và nó cảnh báo 'thành công', mà nó không nên nếu nó đi đến 'khác'. Bất kỳ ý tưởng gì đang xảy ra ở đây?

EDIT: Dưới đây là đoạn code đầy đủ AJAX trong jQuery:

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

     if(data == success) { 

      alert('blah'); 

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

Và sau đó trong phản ứng 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

'alert (typeof data);' Điều này sẽ cho bạn ý tưởng nếu bạn so sánh táo với cam và do đó luôn đi vào người khác. –

+0

Nó đã cho tôi 'chuỗi'. – williamg

+1

bạn có thể dán phản hồi ajax đầy đủ không? – redsquare

Trả lời

28

Bạn có thể sửa chữa nó trên các mặt hàng sử dụng $.trim() như thế này:

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

Hoặc, một cách tiếp cận tốt hơn sẽ được tháo xuống dòng đến từ các server-side, có lẽ một mới-line sai lầm trong PHP của bạn ở đâu đó, kiểm tra trước hoặc sau khối <? ?>, đây thường là nơi chúng được tạo.

Hoặc, chỉ cần thoát sau khi xuất ra nội dung của bạn, như thế này:

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

Tôi đang đọc thuộc tính CSS 'nội dung' của một phần tử và thậm chí cắt tỉa không giúp so sánh để vượt qua. –

0

Bạn có thể loại bỏ các dấu> trong tập tin của bạn, nếu nó là dòng cuối cùng trong tệp. Tôi muốn trả lời các nhận xét về vấn đề ban đầu, nhưng tôi không thấy như thế nào.

+1

Bạn cần 50 đại diện để đăng nhận xét về câu hỏi mà bạn không hỏi. Tiếp tục đăng! http://stackoverflow.com/faq – jasongetsdown

0

Khách hàng bên xác nhận làm việc tốt.

$.trim() fine. 

Cảm ơn bạn Nick. Tôi mất nhiều thời gian để hiểu lý do tại sao nó không hoạt động ...

Các vấn đề liên quan