所以,我有一個PHP腳本的頁面,其中包括一些JavaScript的所有我的HTML回聲。有問題的javascript函數應該在更改選擇框時執行,但每次更改選擇框時,我都會在我的javascript控制檯中得到一個錯誤,指出該函數未定義。Javascript錯誤,功能沒有定義,當它明確定義
我甚至已經減少了功能,只是顯示一個警告框,以幫助調試,但我仍然收到錯誤。
這裏的負責創建選擇框的PHP函數:
function CreateMainSelect()
{
$html = "<select name=\"main_select\" onChange=\"test()\" id=\"main_select\" >";
$html .= "<option value='all'>All</option>";
$html .= "<option value='past'>Past</option>";
$html .= "<option value='current_and_future'>Current and Future</option>";
$html .= "<option value='date_range'>Date Range</option>";
$html .= "</select>";
return $html;
}
完全沒有必要將它的功能,但我需要稍微修改另一個類似的功能已經到位,所以請不要太沮喪跟我!!
而這裏的JavaScript函數中迴應:
echo '<script type="text/javascript">';
echo 'function test()';
echo '{';
echo 'alert("hello world");';
echo '}';
echo '</script>';
的JavaScript被在PHP文件的底部呼應的。我試着將它移到頂端,但是這並沒有改變任何東西。
編輯:謝謝大家的回覆,你的所有建議都非常有幫助。我想出了這個問題,多達兩件事情出錯了。第一個問題是我的瀏覽器是(我想不管怎樣)緩存我的JavaScript,所以我的功能的老版本的bug越來越多,這就是爲什麼一個完美的功能出現以創建錯誤。通過清除緩存解決。
另一個問題(我認爲)是javascript函數實際上並沒有在執行前加載。我通過將JavaScript放入單獨的.JS文件並將其鏈接到.PHP文件來解決此問題。
還有更多的JavaScript?如果有任何錯誤,JavaScript解析在大多數情況下停止,所以其餘不讀取 - >意味着函數未加載,所以這就是它可能沒有定義的原因.... – Nanne
這將有助於很多知道實際頁面看起來像傳遞給瀏覽器的內容。 「查看源代碼」爲「