2012-08-29 71 views
0

當表單輸入有效時,php include(表單提交)將打印此頁。php:打印javascript/jquery dom-ready

if ($valid) { 
    echo "<script type='text/javascript'> 
    $(document).ready(function() { 
     console.log('success'); 
     notificationOutput('success', 'Successfully subscribed'); 
    }); 
    </script>"; 

在我的header.php我包括jQuery。

但是,當做上面的事情我的控制檯告訴我,它不知道$。如果我寫jQuery(document).ready(…

我在這裏錯過了什麼?如上所述,echo位於包含文件中,因此包含所有腳本的標題已位於頁面上。

預先感謝您。

+1

可能jquery沒有正確包含 – ianace

+0

我看不到'{',它是一個錯字? – Kuf

+1

確保jQuery包含在該腳本的回顯之前,jQuery路徑正確,並且您沒有在任何地方調用'$ .noConflict'。或者,只需查看生成的頁面的源代碼,並檢查腳本是否在正確的路徑中。 –

回答

0

這個心不是我的答案我只是複製它在這裏JQuery - $ is not defined

歸功於@Mike Trpcic

該錯誤只能由以下三種情況之一引起:

您的JavaScript文件未正確載入到您的頁面 您有jQuery的僵化版本。這可能是因爲某人編輯了核心文件,或者一個插件可能覆蓋了$變量。 在頁面完全加載之前,您的JavaScript正在運行,因此,在jQuery完全加載之前。 您應該檢查Firebug網絡面板以查看文件是否確實正確加載。如果不是,它將被突出顯示爲紅色,並在旁邊會顯示「404」。如果文件被正確加載,這意味着問題是號碼2

確保所有的JavaScript代碼被一個代碼塊中運行,如:

$(文件)。就緒(函數(){ //你的代碼在這裏 }); 這將確保你的代碼在jQuery初始化後被加載。

要檢查的最後一件事是確保在加載jQuery之前不加載任何插件。插件擴展了「$」對象,所以如果你在加載jQuery核心之前加載插件,那麼你會得到你描述的錯誤。

0

您使用"所以$解釋,切換報價,你會被罰款

+0

php不會評估「$()」,而是按原樣打印出來。你指的是$ {} – timidboy

+0

但是'$'後面緊跟着'('所以它的打印效果與預期一樣。 –

+0

至少在PHP5.4 +中,'$('顯然是一個無效的變量名,忽略(回聲,因爲它是鍵入)OP還說,切換到'jQuery(文檔)...'並沒有改變,但單引號是好的做法無論如何。 –