2013-04-04 24 views
-1

爲了響應Ajax請求,我的php文件要麼是echo true要麼是echo false。在我的JavaScript文件中,我想根據響應調用兩個函數之一。我的顯示的xmlhttp.responseText內容,並發現它是1,所以我嘗試以JavaScript的形式檢查「真實」響應Ajax

if(xmlhttp.responseText == 1) 
{ 
    funcA() 
} 
else 
{ 
    funcB() 
} 

if(xmlhttp.responseText === 1) 
{ 
    funcA() 
} 
else 
{ 
    funcB() 
} 

funcB()總是被調用。如果我想要在調用true時調用funcA(),我應該在JavaScript if語句中檢查哪些內容?

好吧,所以一個答案說要將整數轉換爲字符串,另一個說要解析字符串爲整數。我嘗試過並且都工作,是比其他方法更快的方法之一?

有時候我堅信問題不應該被降低,這是其中之一。即將到來的我沒有看到的是,如果我曾嘗試在我的PHP頁面輸出某些內容(例如echo()var_dump()),那麼此JavaScript將始終評估爲true。

+1

既然是文字,你應該比較''1「'而不是'1'。 – Hellion 2013-04-04 18:33:27

回答

1

如果PHP回顯一個布爾值,你應該能夠只檢查這樣的條件下反應:

if (xmlhttp.responseText) { 
    funcA(); 
else { 
    funcB(); 
} 

的條件自動鑄造爲你一個布爾值。

+0

這個作品,我相信這是最簡單的方法! – Celeritas 2013-04-04 18:58:15

2

當您的responseText將是一個字符串時,您正在進行完全匹配。您可以將類型responseText轉換爲整數(通過parseInt())或進行鬆散檢查(用==替換===)。任何一種解決方案都能解決這個問題。

+0

我不認爲你說的是​​對的,我必須做*兩種*類型轉換和使用==不== == – Celeritas 2013-04-05 07:41:25