首页 > 解决方案 > 是否可以使用 Ajax 调用内部函数?

问题描述

对 PHP 来说是全新的,所以这对我来说是第一次。现在,我想尝试根据以前的下拉列表从 1-10 动态更新下拉列表。

第一个下拉列表是桌位选择,允许您选择桌 1-35,第二个下拉列表是从 1-10 的座位选择。我希望拥有它,以便 1-10 将根据桌子更新,说明谁已经预订了桌子上的座位。

我已经找到了一种正确填充列表的方法,但是当我尝试在第一次下拉更改时更新它时遇到了一些问题。

我研究了很多对不同 PHP 文件的 Ajax 调用,但是我的代码取决于 PHP 在 index.php 文件中的位置来填充下拉列表。我目前有一个函数,它在首次加载时填充列表,并且我对同一文件内的内部函数有一个小的 Ajax 调用。

这是大致可以完全工作的 PHP 代码(我遗漏了更多内容,因为它无关紧要)

<?php
    function populateDropdown2(){
        for ($i=1; $i<=10; $i++)
        {
            if ($row[1] == $_POST['TableNum'] && $row[2] == $i)
            {
                $result = $i . ' - ' . $row[0];                              
                break;
            }
        }
?>
<option value="
    <?php echo $result;?>
" 
    <?php if(strlen($result) > 2){echo "Disabled";}?>
>
    <?php echo $result;?>
</option>

这是我在 Ajax 调用中的尝试:

$(document).ready(function(){
        $('#Tabl').change(function(){
            console.log("CLICKED");
            $.ajax({
                url: "index.php",
                type: "post",
                success: function(response){
                    populateDropDown2(response);
                }
            });
        });    
});

我已经阅读了很多关于 Ajax 的内容,但是是否可以调用存在于同一个文件中的函数,因为它存在于不同的代码块中?谢谢。

编辑:我正在调用的函数必须位于它现在在 PHP 文件中的位置,因为它就在表单的所有其他输入字段的下方

Edit2:我从 PHP 的 CSV 文件中获取我的值。

标签: javascriptphpjqueryajax

解决方案


PHP 和 JavaScript(你的 AJAX 函数)是完全独立的,你不能在 JavaScript 中直接调用 PHP:

  • PHP:在 Web 服务器上运行并通过 HTTP 返回数据。
  • JavaScript:在客户端的浏览器中本地运行。

您的 AJAX 调用必须调用特定的 PHP 代码,然后将数据返回到 JavaScript,然后您可以使用它来修改当前显示的 HTML。

如果您在 PHP 代码中创建 HTML,然后将其返回给您的 JavaScript 函数,您可以使用$.html()将其注入到您的 DOM 中。

最好您希望将感兴趣的数据返回为 JSON(请参阅json_encode()),然后使用它在 JavaScript 中相应地操作您的 DOM(请参阅JSON.parse())。

为了安全起见,请务必将您的 JSON 包装到一个对象而不是数组中,请参阅这篇关于漏洞的帖子


推荐阅读