2011-12-08 41 views
-2

我有這個素文字電話:爲什麼PHP函數打破我的JavaScript

.... 
$objResponse->addScriptCall("my_script"); 
return $objResponse->sendResponse(); 

這工作正常,但如果我嘗試之前發送一個PHP的郵件,該腳本不被調用:

... 
$send =& $mailer->Send(); 
$objResponse->addScriptCall("my_script"); 
return $objResponse->sendResponse(); 

這是爲什麼發生? 的問題仍然存在,即使我有一個簡單的替換電子郵件功能:

... 
print 'hello'; 
$objResponse->addScriptCall("my_script"); 
return $objResponse->sendResponse(); 
+2

郵件發送成功嗎?是否有錯誤訊息? –

+4

可能是因爲'$ mailer-> Send()'遇到了一個致命錯誤。檢查你的日誌。 – ceejayoz

+0

不,我得到一個「無法實例化郵件功能」的錯誤,但那是因爲我在本地服務器。如果我用「」print「替換郵件功能,問題仍然存在」「你好」「 –

回答

0

你需要在你的腳本的頂部調用error_reporting(0); ini_set('display_errors', 0);

$mailer->Send()調用觸發了一個錯誤,正在被回顯。這會導致一個Javascript語法錯誤,正如你所說,它會打破你的Javascript。

這就是爲什麼電話print "hello";也打破它,因爲你有一個隨機的,沒有意義的hello在你的Javascript的頂部。

+0

你是對的。因此,如果郵件功能實際工作在一個活的網站,而不是輸出「無法實例化郵件功能」的錯誤,那麼JavaScript中就不會出現語法錯誤。對? –

+0

@yann正確。你只需要確保你的Javascript絕對沒有輸出appart,或者如果有,請確保它是一個有效的Javascript評論('/ * output * /') – DaveRandom

相關問題