Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可以使用Ajax调用内部函数吗?_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 可以使用Ajax调用内部函数吗?

Javascript 可以使用Ajax调用内部函数吗?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,对PHP完全陌生,所以这对我来说是完全的第一次。现在,我想尝试根据以前的下拉列表从1到10动态更新下拉列表 第一个下拉列表是表格选择,允许您选择表格1-35,第二个下拉列表是1-10中的座位选择。我希望有它,以便1-10将根据表更新,以说明谁已经预订了表上的座位 我已经找到了正确填充列表的方法,但是当我尝试在第一个下拉列表更改时更新它时,我遇到了一些问题 我研究了很多对不同PHP文件的Ajax调用,但是我的代码取决于PHP在index.PHP文件中的位置来填充下拉列表。我目前有一个函数,它在列表

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

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

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

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

这是基本上可以完全工作的PHP代码(还有一点我遗漏了,因为它与此无关) 我已经读了很多关于Ajax的书,但是,调用一个存在于不同代码块中的同一文件中的函数是否可能?谢谢

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

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

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

  • PHP:在web服务器上运行,并通过HTTP返回数据
  • JavaScript:在客户端浏览器中本地运行
AJAX调用必须调用特定的PHP代码,然后将数据返回到JavaScript,您可以使用JavaScript修改当前显示的HTML

如果在PHP代码中创建HTML,然后返回JavaScript函数,则可以使用将其注入DOM

最好是将感兴趣的数据返回为JSON(请参阅)tho,然后使用它相应地在JavaScript中操作DOM(请参阅)


为了安全起见,请确保将JSON包装到对象而不是数组中,请参阅。

快速回答:可以。但你做得不对。您正在尝试在浏览器上运行php。您必须向php发送一个参数,您将在php(服务器)上检查该参数,如果收到该参数,则运行该函数。澄清一下,您的意思是将一个变量发送到index.php,然后如果该变量在任何时候为真,请再次运行该函数?如果该变量设置为您想要的任何值。或者,如果您想在php被点击时运行该函数,那么只需调用该函数即可。在代码中,我最初运行它只是为了生成第一个下拉列表并为表1填充它。但是,无论何时更改表号,我都应该让Ajax将一个变量发送到index.php,并在代码中的某个地方检查该变量,如果它等于true,那么我应该运行php函数?对不起,竞争初学者,我仍然围绕着服务器端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>
$(document).ready(function(){
        $('#Tabl').change(function(){
            console.log("CLICKED");
            $.ajax({
                url: "index.php",
                type: "post",
                success: function(response){
                    populateDropDown2(response);
                }
            });
        });    
});