我在函数内部放置了一个AJAX调用,当有错误(例如输入字段为空)时通过PHP调用,以向用户显示通知,但是我收到此错误:
未捕获的ReferenceError:未定义发送通知
我知道为什么会这样......但我不知道如何修复它。这是因为我正在调用一个尚未定义的函数。这是我的两个文件的极其简化的版本:
的index.php:
<?php
include('con.php'); // the file which connects to the database
echo'<script>sendnotification();</script>'; // calls the function which is in footer.php
include('header.php'); // the file which contains the document headers and imports the jQuery and other libraries
include('footer.php');
?>
我导入header.php
后无法放置回显线,因为它位于验证表单的函数内,而其他if
语句会导致已经发送的标题#39;错误。
footer.php:
<script>
function sendnotification() {
// do something
}
</script>
答案 0 :(得分:0)
echo'<script>sendnotification();</script>';
会立即调用发送通知功能。但是,由于您在页脚中定义了该函数,因为页脚尚未加载,因此会抛出错误。
要解决此问题,请填写
<script>
function sendnotification() {
// do something
}
</script>
高于<script>sendnotification();</script>
或者,您可以检查文档是否准备就绪。
<script>
function sendnotification() {
let interval = setInterval(() => {
if (document.readyState === "complete") {
clearInterval(interval);
// do something
}
}, 100);
}
</script>
答案 1 :(得分:0)
如果你在标题之后调用它(根据你的评论,你是否包含jQuery),该怎么办?
<?php
include('con.php'); // the file which connects to the database
include('header.php'); // the file which contains the document headers and imports the jQuery and other libraries
echo'<script>$(document).ready(function(){sendnotification();});</script>'; // calls the function which is in footer.php
include('footer.php');
?>