[英]call JavaScript function in $(document).ready(function() {})
我想在頁面加載和onChange
運行 ajax 函數,下面是我的代碼:
function ajax_get_subject(ID)
{
alert('function called');
$.ajax(
{
type: 'POST',
url: 'ajax_get_subject.php',
data: {CourseID: ID},
dataType: 'json',
success: function(data)
{
if(data['error'] == null)
{
//do something
}
else
{
//do something
}
},
error: function(ts)
{
alert("AJAX Error: \n" + ts.responseText);
}
});
}
下面是我調用ajax_get_subject
函數的ready()
函數:
$(document).ready(function()
{
//populate at 1st when page load
$(function()
{
var ID = <?php echo $CourseID?>;
ajax_get_subject(ID);
});
});
ajax_get_subject
函數ajax_get_subject
被觸發。 但是如果我在 $('element').change() 中調用該函數,它就可以工作。 我的代碼有問題嗎?
我認為您正在嘗試在不由 PHP 執行的 JS 文件中使用 PHP 代碼。 您必須將聲明移動到 HTML 文件的某處。
我經常在文件頂部定義 PHP 值,以便在 JavaScript 中使用它們,例如:
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript">
window.phpValues = window.phpValues || {};
window.phpValues.courseId = '<?php echo $CourseId ?>';
</script>
<script type="text/javascript" src="path/to/your/script.js">
</head>
....
</html>
...然后在您的script.js
您可以將其用作:
$(window).ready(function() {
alert(phpValues.courseId); // alerts value of $CourseID
});
我有一個語法錯誤,在行var ID = <?php echo $CourseID?>;
,感謝@Felix Kling 在評論中提及。
$CourseID
的值是一個字符串但沒有雙引號,我只是簡單地將代碼更改為var ID = "<?php echo $CourseID?>";
它有效。
也感謝提及嵌套document.ready()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.