Javascript 在PHP Laravel中调用Js函数时未定义函数
我在做一个拉威尔的项目。在我的blade视图中,我有如下Javascript函数: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",
<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变量,而是将值回显到页面上,与你在示例中所做的完全相同。我纠正了这个问题:你似乎误解了。您的函数自动填充。。。定义函数的函数位于页面底部的某个位置。尝试调用该函数的代码在前面的某个地方。这就是问题所在!