簡體   English   中英

在 $(document).ready(function() {}) 中調用 JavaScript 函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM