Javascript 在PHP Laravel中调用Js函数时未定义函数

Javascript 在PHP Laravel中调用Js函数时未定义函数,javascript,jquery,laravel,Javascript,Jquery,Laravel,我在做一个拉威尔的项目。在我的blade视图中,我有如下Javascript函数: <script type="text/javascript"> function autoFill (dropDown, emptyDropDown) { $("#" + dropDown ).change(function() { $.ajax({ type: "GET",

我在做一个拉威尔的项目。在我的blade视图中,我有如下Javascript函数:

<script type="text/javascript">

        function autoFill (dropDown, emptyDropDown) {
            $("#" + dropDown ).change(function() { 

                $.ajax({
                    type: "GET",
                    url: "https://api.myjson.com/bins/bcnss",

                    success: function(response){

                        var dataLength = response.length;

                        $("#" + emptyDropDown).empty();

                        $("#" + emptyDropDown).append("<option value=''>Select</option>");
                        for( var i = 0; i< dataLength; i++){
                            var id = response[i].id;
                            var name = response[i].name;
                            $("#" + emptyDropDown).append("<option value='"+id+"'>" + name + " </option>");
                        }                 
                    }
                });
            });
        }

    </script>
然后,我在body标记中调用此函数,并向其传递两个php参数:

<?php echo "<script> autoFill('$dropDown', '$emptyDropDown'); </script>"; ?>
但是当我运行这个时,我得到了一个错误:uncaughtreferenceerror:autoFill没有定义

如果需要,以下是我在blade view中的完整代码:

活动形式 @iAsset$formDataResult&设置$dropdownValue @foreach$formDataResult为$formDataValue @如果$formDataValue['type']=='select' @如果阵列密钥存在“描述”,则$formDataValue @组件'components/InputSelect'[ 'name'=>$formDataValue['label'], 'id'=>$formDataValue['name'], “enumData”=>$dropdownValue ] @端部元件 @否则 @组件'components/EmptyInputSelect'[ 'name'=>$formDataValue['label'], 'id'=>$formDataValue['name'] ] @端部元件 @恩迪夫 @elseif$formDataValue['type']=='text' @组件'components/InputText'[ 'name'=>$formDataValue['label'], 'id'=>$formDataValue['name'], 'type'=>$formDataValue['type'] ] @端部元件 @恩迪夫 @endforeach
您可以使用PHP将js值读取到。但您可以将js值打印到HTML屏幕

您有一个带有class或id属性的or标记,然后可以将您的值放在其中

这是您的js功能

<script>

    // whatever value you need in your js from PHP. you need to below code.

    let dropdown = <?php echo $dropDown; ?>
    let emptyDropdown = <?php echo $emptyDropDown; ?>


    // now pass your js variables here.
    function autoFill (dropDown, emptyDropDown) {
        $("#" + dropDown ).change(function() { 

            let $this = $(this);

            $.ajax({
                type: "GET",
                url: "https://api.myjson.com/bins/bcnss",

                success: function(response){

                    var dataLength = response.length;

                    $("#" + emptyDropDown).empty();

                    $("#" + emptyDropDown).append("<option value=''>Select</option>");
                    for( var i = 0; i< dataLength; i++){
                        var id = response[i].id;
                        var name = response[i].name;
                        $("#" + emptyDropDown).append("<option value='"+id+"'>" + name + " </option>");
                    }
                }
            });
        });
    }
</script>

您正在尝试在定义函数之前调用它。把。。。在自动填充“$dropDown”和“$empthydropdown”之前定义函数;它试图调用它。

定义是否在调用之前?定义中是否有任何错误可能会阻止它被定义?你无法将js值获取到PHPI。我对js很陌生,所以我真的不知道它有什么问题?我将PHP var传递给了我的js函数。我没有得到PHP的任何Js值;如果将PHP值回送到单独的JS变量而不是函数参数值,会有什么区别?不过,这不是我的反对票。你不能直接在JS中访问PHP变量。在将PHP变量用于JS之前,首先需要打印PHP变量值并将其存储到JS变量。然后你可以在你的JS代码中访问PHP变量值。他们不是直接访问JS中的PHP变量,而是将值回显到页面上,与你在示例中所做的完全相同。我纠正了这个问题:你似乎误解了。您的函数自动填充。。。定义函数的函数位于页面底部的某个位置。尝试调用该函数的代码在前面的某个地方。这就是问题所在!