2011-10-01 60 views
0

我在應用程序中使用jQuery和jqGrid。我有一個函數不一致的檢查response.responseText?

function messageControl(response, formdata, id){ 
    switch(response.responseText){ 
    case '0': .... 
    case '1': .... 
    case '2': .... 
    default: .... 
    } 
} 

的反應就像是echo 0;從jqGrid的editUrl一個PHP語句。我在一系列腳本上實現了這個功能,除了他們訪問的數據庫表以外,它們非常相似。爲什麼這會在一些情況下工作,而在其他情況下,總是將案例選項跳到默認值?我可以在Firebug中看到響應是正確的數字。

回答

1

確保你使用了break語句。如果你已經在調試器中瀏覽它,看看發生了什麼。

編輯:好的,這是問題。 「\ n1」不嚴格等於(===運算符)到'1'(切換大小寫使用嚴格相等)。事實上,它也不是鬆散平等的(==)。最有可能的是,你有一個包含在某處的輸出。搜索headers already sent。即使你沒有得到那個錯誤,這也是同樣的原因。

+0

不同之處在於,在被破壞的腳本中,響應是'\ n1'。那些工作只是「1」。但是在這兩種情況下,服務器只是對int進行'echo'命令。 – ravl1084

+0

@ravl,你可能無意中在標題中輸出。 –